]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.140.jcn6
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 21 Mar 2001 15:06:42 +0000 (16:06 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 21 Mar 2001 15:06:42 +0000 (16:06 +0100)
1.3.140.jcn6
============

* po update.

* Renamed remaining mudela -> lilypond (except for old change logs).

* Dropped Solo-Cello-Suite II and gnossienne-4 from ./mutopia, as
they're now accessible throug the ports.

* Fixed compilation of lots of examples.

* Convert-ly: added and fixed some conversions.

* Doco updates.

* Ly2dvi: don't hang compilation process: run latex in batchmode.

105 files changed:
CHANGES
Documentation/topdocs/FAQ.texi
Documentation/user/invoking.itexi
Documentation/user/latex-example.latex [new file with mode: 0644]
Documentation/user/latex-lilypond-example.latex
Documentation/user/refman.itely
Documentation/user/tutorial.itely
NEWS
VERSION
buildscripts/mutopia-index.py
flower/input.cc
input/bugs/denneboom.ly [new file with mode: 0644]
input/bugs/minimal.ly [new file with mode: 0644]
input/bugs/multiply.ly [new file with mode: 0644]
input/denneboom.ly
input/les-nereides.ly
input/regression/arpeggio-collision.ly
input/test/ac-extra-voice.ly
input/test/auto-beam-override.ly
input/test/bar-break.ly
input/test/font.ly
input/test/harmonics.ly
input/test/part-combine-mmrest.ly
input/test/top-staff-volta.ly
input/tutorial/wss.ly
ly/dynamic-scripts.ly
ly/params-as.ly
ly/property.ly
make/ly.make
make/ports-rules.make
midi2ly/include/duration-convert.hh
midi2ly/include/lilypond-column.hh [new file with mode: 0644]
midi2ly/include/lilypond-item.hh [new file with mode: 0644]
midi2ly/include/lilypond-score.hh [new file with mode: 0644]
midi2ly/include/lilypond-staff.hh [new file with mode: 0644]
midi2ly/include/lilypond-stream.hh [new file with mode: 0644]
midi2ly/include/lilypond-voice.hh [new file with mode: 0644]
midi2ly/include/midi-parser.hh
midi2ly/include/midi-score-parser.hh
midi2ly/include/midi-track-parser.hh
midi2ly/include/midi2ly-proto.hh
midi2ly/include/mudela-column.hh
midi2ly/include/mudela-item.hh
midi2ly/include/mudela-score.hh
midi2ly/include/mudela-staff.hh
midi2ly/include/mudela-stream.hh
midi2ly/include/mudela-voice.hh
midi2ly/lilypond-column.cc [new file with mode: 0644]
midi2ly/lilypond-item.cc [new file with mode: 0644]
midi2ly/lilypond-score.cc [new file with mode: 0644]
midi2ly/lilypond-staff.cc [new file with mode: 0644]
midi2ly/lilypond-stream.cc [new file with mode: 0644]
midi2ly/lilypond-voice.cc [new file with mode: 0644]
midi2ly/main.cc
midi2ly/midi-score-parser.cc
midi2ly/midi-track-parser.cc
midi2ly/mudela-column.cc
midi2ly/mudela-item.cc
midi2ly/mudela-score.cc
midi2ly/mudela-staff.cc
midi2ly/mudela-stream.cc
midi2ly/mudela-voice.cc
mutopia/E.Satie/gnossienne-4.ly
mutopia/J.S.Bach/GNUmakefile
mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile
mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/header.ly
mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/scsii-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/scsii-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/solo-cello-suite-ii.ly
po/de.po
po/fr.po
po/it.po
po/ja.po
po/lilypond.pot
po/nl.po
po/ru.po
ports/mutopia/BeethovenLv/O62/Coriolan/GNUmakefile [new file with mode: 0644]
ports/mutopia/BeethovenLv/O62/GNUmakefile [new file with mode: 0644]
scm/basic-properties.scm
scm/c++.scm
scm/lily.scm
scripts/as2text.scm
scripts/convert-ly.py
scripts/ly2dvi.py
tex/mudela-book.tex
tex/p.tex
tex/test-pedal.tex [new file with mode: 0644]

diff --git a/CHANGES b/CHANGES
index fc2dda2f9ba6d4321db5e06db1b5ba1ca3c4ac59..788db951381ab7be9480c4d7f8f540ed39f9ff5f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,21 @@
+1.3.140.jcn6
+============
+
+* po update.
+
+* Renamed remaining mudela -> lilypond (except for old change logs).
+
+* Dropped Solo-Cello-Suite II and gnossienne-4 from ./mutopia, as
+they're now accessible throug the ports.
+
+* Fixed compilation of lots of examples.
+
+* Convert-ly: added and fixed some conversions.
+
+* Doco updates.
+
+* Ly2dvi: don't hang compilation process: run latex in batchmode.
+
 1.3.140.jcn4
 ============
 
index 1f7d909a996f63d300a187d4b702f12b6dd13662..97d93cb6142b5f1ae676e8ea24ddb3c82bd12d12 100644 (file)
@@ -83,4 +83,12 @@ The website is usually made from the latest snapshots.  Binary releases,
 in particular the windows32 binaries, are only made every once in a while.
 They may lag several versions behind the latest version.
 
+@subsection Beams, slurs and crescendi are not displayed at all!
+
+XDvi uses GhostScript for displaying PostScript, check that you have
+GhostScript installed.  If you use a different DVI viewer (eg, on
+Windows), check if it will display embedded PostScript.  Don't worry,
+the symbols should appear on the printout.
+
+
 @bye
index a082f4df5db55fc3a3ea53e881822121d9256dd2..9d23b38f20d04264bf1f77c1f4313fea364fda00 100644 (file)
@@ -8,10 +8,10 @@
 
 
 @example
-        lilypond [OPTION]... [MUDELA-FILE]...
+        lilypond [OPTION]... [FILE]...
 @end example
 
-@unnumberedsec Command Options
+@unnumberedsec Options
 
 @table @code
 
diff --git a/Documentation/user/latex-example.latex b/Documentation/user/latex-example.latex
new file mode 100644 (file)
index 0000000..022a4c8
--- /dev/null
@@ -0,0 +1,49 @@
+\documentclass[a4paper]{article}
+
+
+
+%\def\preLilypondExample{}}
+%\def\postLilypondExample{}
+
+
+\begin{document}
+
+\begin{lilypond}
+\score {
+ \notes\relative c' { c d e f g a b c }
+}
+\end{lilypond}
+
+
+\begin[fragment]{lilypond}
+c d e
+\end{lilypond}
+
+
+% generate standard lilypond titles
+\input titledefs.tex
+\def\preLilypondExample{\def\mustmakelilypondtitle{}}
+
+\begin{lilypond}
+\header {
+  title =      "Title";
+  subtitle =   "Subtitle";
+  subsubtitle =        "Subsubtitle";
+  opus =  "Opus 1";
+  piece = "Piece";
+  composer =    "Composer";
+  enteredby =   "JCN";
+  instrument = "instrument";
+}
+\paper { linewidth = -1.; }
+\score {
+  \notes \relative c'' { a b c d }
+}
+\end{lilypond}
+
+\begin{enumerate}
+\item Vers one.  aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
+\item Vers two.  bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb 
+\end{enumerate}
+
+\end{document}
index d155917b569e6aaf97f320ab42bf51b8dd8e0205..155795a5266ef4602c77e1a32d61213e6383a673 100644 (file)
@@ -1,15 +1,23 @@
-% kommentar
+%
+% This is way too long and hairy
+%
+%
+
+
+
 \documentclass[a4paper, 12pt]{article}
-%\def\preMudelaExample{}
-%\def\postMudelaExample{}
+
+%\def\preLilypondExample{}
+%\def\postLilypondExample{}
 %\usepackage{graphics}
 %\usepackage{landscape}
+
 \begin{document}
 %uncomment this to try twocolumn mode
 %\twocolumn
 
 
-\section{Mudelabook + LaTeX}
+\section{Lilypond-book + LaTeX}
 
 This is an examplefile for mixing Lilypond and Latex. It is also
 used to test lilypond-book. View the source to see how it is done.
index ebf3898768632411dfd3ff76ba38be0ba594b5dc..96efdb7c4e4fa9ed9b148e5a3725ab0c556d31da 100644 (file)
@@ -859,7 +859,6 @@ beaming algorithm.  For example, the auto beamer will not beam over
 rests or bar lines, so if you want that, specify the begin and end point
 manually using @code{[} and @code{]}:
 
-@quotation
 @lilypond[fragment,relative,verbatim]
   \context Staff {
     r4 [r8 g'' a r8] r8 [g | a] r8
@@ -880,7 +879,6 @@ control the number of beams through the properties
     [f8 r16 \property Voice.stemLeftBeamCount = #1 f g a]
   }
 @end lilypond
-@end quotation
 @cindex @code{stemRightBeamCount}
 
 The beam symbol can be tweaked through @code{Voice.Beam}'s
@@ -889,24 +887,20 @@ in staff-spaces.
 
 Set @code{height} to zero, to get horizontal beams:
 
-@quotation
 @lilypond[fragment,relative,verbatim]
   \property Voice.Beam \set #'direction = #1
   \property Voice.Beam \set #'height = #0
   [a''8 e' d c]
 @end lilypond
-@end quotation
 
 Here's how you'd specify a weird looking beam that instead of being
 horizontal, falls two staff spaces:
 
-@quotation
 @lilypond[fragment,relative,verbatim]
   \property Voice.Beam \set #'staff-position = #2
   \property Voice.Beam \set #'height = #-2
   [c'8 c] 
 @end lilypond
-@end quotation
 @cindex @code{default-neutral-direction}
 
 @node Expressive marks
@@ -940,7 +934,6 @@ stem end.  If you want to override this layout you can do this through
 Maybe reinclude other slur features and move back to tricks?  Esp. the
 second example, how to fix, can be very helpful.
 
-@quotation
 @lilypond[fragment,relative,verbatim]
   \property Voice.Slur \set #'direction = #1
   \property Voice.Stem \set #'length = #5.5
@@ -948,13 +941,11 @@ second example, how to fix, can be very helpful.
   \property Voice.Slur \set #'attachment = #'(stem . stem)
   g8(g)g4
 @end lilypond
-@end quotation
 
 If a slur would strike through a stem or beam, the slur will be moved
 away upward or downward. If this happens, attaching the slur to the
 stems might look better:
 
-@quotation
 @lilypond[fragment,relative,verbatim]
   \property Voice.Stem \set #'direction = #1
   \property Voice.Slur \set #'direction = #1
@@ -962,7 +953,6 @@ stems might look better:
   \property Voice.Slur \set #'attachment = #'(stem . stem)
   d,32( d'4 )d8..
 @end lilypond
-@end quotation
 
 
 Similarly, the curvature of a slur is adjusted to stay clear of note
@@ -1083,6 +1073,8 @@ An application---or rather, a hack---is to fake octavation indications.
 * Articulation::                
 * Text scripts::                
 * Grace notes::                 
+* Glissando ::                  
+* Dynamics::                    
 @end menu
 
 @c .   {Articulation}
@@ -1256,15 +1248,12 @@ Unbeamed eighth notes and shorter by default have a slash through the
 stem.  This behavior can be controlled with the
 @code{Stem}.@code{flag-style} property.
 
-@quotation
 @lilypond[fragment,verbatim]
 \relative c'' {
   \grace c8 c4 \grace { [c16 c16] } c4
   \grace { \property Grace.Stem \override #'flag-style = #'() c16 } c4
 }
-
 @end lilypond
-@end quotation
 
 
 At present, nesting @code{\grace} notes is not supported. The following
@@ -1300,7 +1289,7 @@ also be implemented.
 
 @c .   {Glissando}
 @node Glissando 
-@subsubsection Glissando
+@subsection Glissando
 @cindex Glissando 
 
 @cindex @code{\glissando}
@@ -1308,11 +1297,9 @@ also be implemented.
 A glissando line can be requested by attaching a @code{\glissando} to a
 note:
 
-@quotation
 @lilypond[fragment,relative,verbatim]
   c'' \glissando c'
 @end lilypond
-@end quotation
 
 @refbugs
 
@@ -1323,7 +1310,7 @@ manually.
 
 @c .   {Dynamics}
 @node Dynamics
-@subsubsection Dynamics
+@subsection Dynamics
 @cindex Dynamics
 
 
@@ -1352,6 +1339,10 @@ note: @code{c4-\ff}.  The available dynamic marks are: @code{\ppp},
 @code{\fff}, @code{\fff}, @code{\fp}, @code{\sf}, @code{\sff},
 @code{\sp}, @code{\spp}, @code{\sfz}, and @code{\rfz}.
 
+@lilypond[verbatim,singleline,fragment,relative]
+  c''\ppp c\pp c \p c\mp c\mf c\f c\ff c\fff
+  c2\sf c\rfz
+@end lilypond
 
 @cindex Crescendo and Decrescendo
 @cindex crescendo
@@ -1464,34 +1455,28 @@ Normal notation repeats are used like this:
 @end lilypond
 
 With alternative endings:
-@quotation
 @lilypond[fragment,verbatim]
   c'1
   \repeat volta 2 {c'4 d' e' f'} 
   \alternative { {d'2 d'} {f' f} }
 @end lilypond
-@end quotation
 
 Folded repeats look like this:@footnote{Folded repeats offer little
 more over simultaneous music.  However, it is to be expected that
 more functionality -- especially for the MIDI backend -- will be
 implemented at some point in the future.}
 
-@quotation
 @lilypond[fragment,verbatim]
   c'1
   \repeat fold 2 {c'4 d' e' f'} 
   \alternative { {d'2 d'} {f' f} }
 
 @end lilypond
-@end quotation
-
 
 If you don't give enough alternatives for all of the repeats, then
 the first alternative is assumed to be repeated often enough to equal
 the specified number of repeats.
 
-@quotation
 @lilypond[fragment,verbatim]
 \context Staff {
   \relative c' {
@@ -1501,7 +1486,6 @@ the specified number of repeats.
   }
 }
 @end lilypond
-@end quotation
 
 @refbugs
 
@@ -1740,17 +1724,14 @@ You can specify an arpeggio sign on a chord by attaching an
 @code{\arpeggio} to a note of the chord.
 
 
-@quotation
 @lilypond[fragment,relative,verbatim]
   \context Voice <c'\arpeggio e g c>
 @end lilypond
-@end quotation
 
 When an arpeggio crosses staffs in piano music, you attach an arpeggio
 to the chords in both staffs, and set
 @code{PianoStaff.connectArpeggios}.
 
-@quotation
 @lilypond[fragment,relative,verbatim]
   \context PianoStaff <
     \property PianoStaff.connectArpeggios = ##t
@@ -1758,7 +1739,6 @@ to the chords in both staffs, and set
     \context Voice = other { \clef bass;  <c,,\arpeggio e g>}
   >  
 @end lilypond
-@end quotation
 
 This command creates @code{Arpeggio} grobs. 
 
@@ -1782,7 +1762,6 @@ Whenever a voice switches to another staff a line connecting the notes
 can be printed automatically. This is enabled if the property
 @code{PianoStaff.followVoice} is set to true:
 
-@quotation
 @lilypond[fragment,relative,verbatim]
   \context PianoStaff <
     \property PianoStaff.followVoice = ##t
@@ -1794,7 +1773,6 @@ can be printed automatically. This is enabled if the property
     \context Staff=two {\clef bass; \skip 1*2;}
   >  
 @end lilypond
-@end quotation
 
 
 @c . {Lyrics}
@@ -2054,9 +2032,6 @@ must be separated by a dot (@code{.}).
 Throughout these examples, chords have been shifted around the staff
 using @code{\transpose}.
 
-
-@quotation
-
 @lilypond[fragment,verbatim]
 \transpose c'' {
   \chords {
@@ -2064,9 +2039,7 @@ using @code{\transpose}.
     c:9 c:9-.5+.7+ c:3-.5- c:4.6.8
   }
 }
-
 @end lilypond
-@end quotation
 
 @cindex @code{aug}
 @cindex @code{dim}
@@ -2081,17 +2054,13 @@ raises the 5th, `@code{dim}' which lowers the 5th,
 `@code{maj}' which adds a raised 7th, and `@code{sus}'
 which replaces the 5th with a 4th.
 
-@quotation
-
 @lilypond[fragment,verbatim]
 \transpose c'' {
   \chords {
     c1:m c:min7 c:maj c:aug c:dim c:sus
   }
 }
-
 @end lilypond
-@end quotation
  
 
 Chord subtractions are used to eliminate notes from a chord.  The
@@ -2153,7 +2122,6 @@ For displaying printed chord names, use the @code{ChordNames} context.
 The chords may be entered either using the notation described above, or
 directly using simultaneous music.
 
-@quotation
 @lilypond[verbatim,singleline]
 scheme = \notes {
   \chords {a1 b c} <d f g>  <e g b>
@@ -2165,14 +2133,12 @@ scheme = \notes {
   >
 }
 @end lilypond
-@end quotation
 
 You can make the chord changes stand out by setting property
 @code{ChordNames.chordChanges} to true.  This will only display chord
 names when there's a change in the chords scheme and at the start of the
 line.
 
-@quotation
 @lilypond[verbatim]
 scheme = \chords {
   c1:m \break c:m c:m c:m d
@@ -2186,7 +2152,6 @@ scheme = \chords {
     \context Staff \transpose c'' \scheme
   > }
 @end lilypond
-@end quotation
 
 LilyPond examines chords specified as lists of notes to determine a name
 to give the chord. LilyPond will not try to identify chord inversions or
@@ -2195,7 +2160,6 @@ entered as a list of pitches:
 
 [base vs. bass ?]
 
-@quotation
 @lilypond[verbatim,center,singleline]
 scheme = \notes {
   <c'1 e' g'>
@@ -2210,7 +2174,6 @@ scheme = \notes {
   >
 }
 @end lilypond
-@end quotation
 
 
 By default LilyPond uses chord name system proposed by Harald Banter
@@ -2328,7 +2291,6 @@ This means that middle C in @var{musicexpr} is transposed to
 a tone.  The first version will print sharps and the second version
 will print flats.
 
-@quotation
 @lilypond[fragment,verbatim]
 \context Staff {
   \clef "F";
@@ -2337,9 +2299,7 @@ will print flats.
   \transpose des'' { \key e \major; c d e f }
   \transpose cis'' { \key e \major; c d e f }
 }
-
 @end lilypond
-@end quotation
 
 If you want to use both @code{\transpose} and @code{\relative}, then
 you must use @code{\transpose} first.  @code{\relative} will have no
@@ -2516,7 +2476,6 @@ anticipates the pitch of the first note(s) of the following line and
 thus helps the player or singer to manage line breaks during
 performance, thus enhancing readability of a score.
 
-@quotation
 @lilypond[verbatim]
 \score {
   \notes { c'1 d' e' d' \break c' d' e' d' }
@@ -2529,7 +2488,6 @@ performance, thus enhancing readability of a score.
   }
 }
 @end lilypond
-@end quotation
 
 Custodes were frequently used in music notation until the 16th century.
 There were different appearences for different notation styles.
@@ -2827,8 +2785,6 @@ the @TeX{} family.
 @cindex font magnification
 @cindex @code{font-interface}
 
-@refbugs
-
 
 @node Text markup
 @subsection Text markup
@@ -3543,8 +3499,6 @@ This instructs lilypond to interpret @var{musicexpr} within the context
  of type @var{contexttype} and with name @var{contextname}.  If this
 context does not exist, it will be created.  
 
-@quotation
-
 @lilypond[verbatim,singleline]
 \score {
   \notes \relative c'' {
@@ -3553,7 +3507,6 @@ context does not exist, it will be created.
 }
 
 @end lilypond
-@end quotation
 
 In this example, the @code{c} and @code{d} are printed on the
 default staff.  For the @code{e}, a context Staff called
@@ -3806,7 +3759,6 @@ be used as the very first item of a translator.  In order to define
 such an identifier outside of @code{\score}, you must do
 
 @quotation
-
 @example 
 \paper @{
   foo = \translator @{ @dots{} @}
index db10ca4a275d9572377149cc66b7f9f3b6b042c8..e225639dc92543c0c0ada8bfd1231d39584bf633 100644 (file)
@@ -182,6 +182,9 @@ manual was written using lilypond-book. lilypond-book is discussed in
 
 [TODO]
 
+* setting of env vars (TFMINPUTS,MFINPUTS,TEXINPUTS)
+* dvi viewer doesn't display postscript
+
 
 @node The first tune
 @section The first tune
diff --git a/NEWS b/NEWS
index ca0c0f2de9efb3572984e9bce3787cd58fa5c234..a402dff00804254aa7e168718b568bfc2971a182 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,16 @@
 
+New features in 1.4
+
 * Finale (.etf), PMX (.pmx) and musedata import tools.
 
 * Point and click functionality using emacs and Xdvi.
 
+* Comprehensive documentation, including tutorial.
+
+* Self-documenting: generated internal documentation.
+
+* Includes an extensive glossary of musical terms.
+
 * Improved design and implementation: Complete rewrite of the
 internals: LilyPond is smaller, cleaner, more flexible, etc.
 
@@ -29,21 +37,24 @@ internals: LilyPond is smaller, cleaner, more flexible, etc.
   and stanza numbering.
 
 * Part combining for orchestral scores and hymns: two voices are
-  combined into a staff automatically, including Solo/`a2
+  combined into a staff automatically, including Solo/a2
   indications as appropriate.
 
 * Chordnames are now configurable in every respect
 
-* Includes an extensive glossary of musical terms.
-
-* Many bugfixes.
+* Easy-play notation
 
 * Finished ouverture Coriolan as full orchestral score example.
 
-* Self-documenting: generated internal documentation.
+* Mutopia ports collection: easy accessible music archive.
 
 * AsciiScript: ASCII-art output 
 
 * Translations into Japanese, French and Russian
 
-* EZ play notation
+* Many bugfixes.
+
+
+Removed features
+
+* margin shape
diff --git a/VERSION b/VERSION
index c84d4348f2ccea61f150731ac91ed0bb7d555297..2a02e1e6ad15fb954c8e952352062c8778d0d46c 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=140
-MY_PATCH_LEVEL=jcn5
+MY_PATCH_LEVEL=jcn6
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index a79e99cc6eea2059d6c47deda1a2d674f991b3a0..4cb45eae1e323ada6f63ad53f8eba653087bf284 100755 (executable)
@@ -65,7 +65,7 @@ These images are generated at approximately 180dpi. If you want a better impress
 #
 # FIXME breaks on multiple strings.
 #
-def read_mudela_header (fn):
+def read_lilypond_header (fn):
        s = open(fn).read ()
        s = re.sub('%.*$', '', s)
        s = re.sub('\n', ' ', s)                
@@ -126,7 +126,7 @@ def gen_list(inputs, filename):
                ext = ext2 + ext
                
                print '%s, ' % ex
-               header = read_mudela_header(ex)
+               header = read_lilypond_header(ex)
                
                def read_dict(s, default, h =header):
                                try:
index 8ec33cf882d9bfa8f4c573cd902ce578fd3a4f3c..d45f81b9d32a62d37c4a61913d9bf9d871bb4632 100644 (file)
@@ -37,8 +37,8 @@ Input::set_spot (Input const &i)
 }
 
 /*
-  Produce GNU-compliant error message.  Correcting mudela is such a
-  breeze if you ('re edidor) know (s) the error column too
+  Produce GNU-compliant error message.  Correcting lilypond source is
+  such a breeze if you ('re edidor) know (s) the error column too
   
   Format:
 
diff --git a/input/bugs/denneboom.ly b/input/bugs/denneboom.ly
new file mode 100644 (file)
index 0000000..5f368a7
--- /dev/null
@@ -0,0 +1,115 @@
+\header{
+filename =      "denneboom.ly";
+enteredby =     "jcn";
+copyright =     "public domain";
+}
+%{ file tests silly line shapes %}
+
+\include "paper20.ly"
+
+
+
+oden =  \lyrics{ 
+       O |
+       den- ne- boom, o | 
+       den- ne- boom  Wat |
+       zijn uw tak- ken | 
+       won- der- schoon 
+}
+
+ikheb =  \lyrics{
+       Ik | 
+       heb u laatst in_'t |
+       bos zien staan  toen |
+       zat- en er geen |
+       kaars- jes aan 
+}
+
+ugloeit =  \lyrics{
+       U |
+       gloeit in bar- re | 
+       win- ter- tijd, als |
+       sneeuw op aar- de | 
+       licht ge- spreid 
+}
+
+oboom =  \notes\transpose c''{
+       g,8 |
+       c8. c16 c4. d8 | 
+       e8. e16 e4. e8 | 
+       d  e f4 b, | 
+       d8. c16 c4 r8
+}
+
+bos =  \notes\transpose c''{
+       g8 | 
+       g e a4. g8 | 
+       g8. f16 f4 r8 f8 |
+       f d g4. f8 | 
+       f8. e16 e4 r8
+}
+
+
+melody =  \notes{
+       \oboom
+       \oboom
+       \bos
+       \oboom
+}
+
+
+verseOne =  \notes{
+       \oden
+       \oden
+       \ikheb
+       \oden
+}
+
+verseOneStaff =  \context Lyrics = one 
+       \$verse_one
+
+
+verseTwo =  \notes{
+       \oden
+       \oden
+       \ugloeit
+       \oden
+}
+
+verseTwoStaff =  \context Lyrics = two 
+       \$verse_two
+
+
+denneboomShape =  \paper{ 
+       \paperTwenty
+       indent = 20. \mm;
+
+       % UGH -- THIS IS HAIRY 
+       #'margin-shape = #(map
+               (lambda (x) (cons-map mm-to-pt x)) 
+               '((70.0 .  20.)
+                (65.0 .  30.0)
+                (57.5  .  45.0)
+                (50.0 .  60.0) 
+                (42.5  .  75.)  
+                (35.0 .  90.)
+                (27.5  .  105.)
+                (20.0 .  120.0)
+                (10.0 .  140.0) 
+                (65.0 .  30.0))
+       )
+
+       gourlay_maxmeasures = 30.;
+       arithmetic_basicspace = 3.8;
+       arithmetic_multiplier = 8.\pt;
+}
+
+\score{
+       \addlyrics
+               \context Staff { \time 3/4; \melody }
+               \context Lyrics \$verse_one
+       \paper{ 
+               \$denneboom_shape 
+       }
+       \midi{ \tempo 4 = 90; }
+}
diff --git a/input/bugs/minimal.ly b/input/bugs/minimal.ly
new file mode 100644 (file)
index 0000000..489cbd1
--- /dev/null
@@ -0,0 +1,12 @@
+% minimal what?
+% dumps core
+
+
+\score {
+  \sequential {\clef bass ; }
+  \paper {
+%    \translator { \context Score_engraver ; \name "Score";  }
+    \translator { \type "Score_engraver"; \name "Score";  }
+       linewidth = 30 * \staffspace;
+  } 
+}
diff --git a/input/bugs/multiply.ly b/input/bugs/multiply.ly
new file mode 100644 (file)
index 0000000..85c02dc
--- /dev/null
@@ -0,0 +1,24 @@
+% ugh: strange order of things, this:
+%    a16 * 1/2 (
+% must be 
+%    a16 ( * 1/2
+
+
+\score { 
+  \context Voice \notes\relative c {
+    % to see the magic: uncomment size stuff in init/paper20.ly
+       
+       c'4 c4
+       
+       \property Voice.fontSize= -2
+       % ugh ugh
+       b16 * 1 / 2 (
+       \property Voice.fontSize= 0 )
+       g4 *31/32
+       
+       a a g2
+       
+  }
+  \paper { }  
+  \midi { }
+}
index a68d3f565e2a4df789db15c28356b14560e61813..5f368a7d5689ce615c26d700c8c3d60500151008 100644 (file)
@@ -66,7 +66,7 @@ verseOne =  \notes{
 }
 
 verseOneStaff =  \context Lyrics = one 
-       \verse_one
+       \$verse_one
 
 
 verseTwo =  \notes{
@@ -77,7 +77,7 @@ verseTwo =  \notes{
 }
 
 verseTwoStaff =  \context Lyrics = two 
-       \verse_two
+       \$verse_two
 
 
 denneboomShape =  \paper{ 
@@ -107,9 +107,9 @@ denneboomShape =  \paper{
 \score{
        \addlyrics
                \context Staff { \time 3/4; \melody }
-               \context Lyrics \verse_one
+               \context Lyrics \$verse_one
        \paper{ 
-               \denneboom_shape 
+               \$denneboom_shape 
        }
        \midi{ \tempo 4 = 90; }
 }
index dc4e04f823d5794507b1d567e1bc184132f82953..d4efc7d03711dac88d58188f30e076d101b0868e 100644 (file)
@@ -36,7 +36,7 @@ global =  \notes{
     \skip 2;
     \skip 1*2;
 
-#ifndef FAKE_GRACE
+#ifndef FAKE_GRACE  /* First run this through cpp.  See head les-nereides.ly */
     \skip 1;
 #else % FAKE_GRACE
     \skip 2.; \partial 32*24;
index 6425b9821732b1c68e9e0414b1021f7de4c24a68..7a8d7f0aeead280ee91a8ffe0069ea78bbdfc4c6 100644 (file)
@@ -1,5 +1,5 @@
 
-xheader = {
+header = {
 texidoc = "arpeggio stays clear of accidentals and flipped note heads.
 Since Arpeggio engraver is Voice, it does nothing for voice collisions."
 };
index 316dee02c6502bc47f8ca0fc95a13ab4cc4ab363..ca1dc4e8b0dcd70559825a093718eb5a264adfba 100644 (file)
@@ -65,7 +65,7 @@ accompany =  \notes \relative c{
 
                        slurVerticalDirection = #1
                        verticalDirection = -1
-                       autoBeamSettings \override (end * * * *)  = #(make-moment 1 2)
+                       autoBeamSettings \override #'(end * * * *)  = #(make-moment 1 2)
                }
        }
        \midi {
index e03f7867ef2fdaf305fcfa77a0cb8edbd6cf517f..c99c614770df75d5faa7d66799e2be727513dc40 100644 (file)
@@ -28,7 +28,7 @@
        c8 c c4
        r8 c c c
        % no autobeaming
-       \property Voice.beamAuto = ##f
+       \property Voice.noAutoBeaming = ##t
        c8 c c c
     }
     \paper{
index 139597f9cb07c5d48bed18984ec4747f4b4f3438..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,2 +0,0 @@
-
-
index 241d195fcba3522ac0064147de7b890aad6b660d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,27 +0,0 @@
-\header{
-title= "The Feta Font";
-subtitle =  "proofsheet"; 
-enteredby =     "jcn & hwn";
-copyright =     "public domain";
-description =  "This file tests the Feta music font";
-% "(Feta definitively is not an abbreviation of Font-En-TjA)";
-}
-
-
-
-\include "font-body.ly"
-\score{
-       \paper{ 
-           % don't change this.
-           % otherwise 16pt and 20pt layouts differ.
-           linewidth = 12.5 \cm;
-           gourlay_maxmeasures =5.;
-       }
-       \paper{
-           \paperTwenty
-           linewidth = 17.5 \cm;
-           gourlay_maxmeasures =5.;
-           output =  "font20.tex";
-       }
-}
-
index 6c25e775077578f021fd891c850bd6b4ec1e126d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,8 +0,0 @@
-
-\score { 
-  \context Voice \notes\relative c {
-    
-  }
-  \paper { }  
-  \midi { }
-}
index 7e035af3c97b6fb7f6bc671109d48b133621ccee..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,4 +0,0 @@
-\header {
-  texidoc = ""
-
-  }
\ No newline at end of file
index 5a1f20d4f7671c19200e597e55ab3558fd88b3a7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,6 +0,0 @@
-
-
-voltaCommands = \notes {
-       s1 \property Staff.repeatCommands = #((volta . "1"))
-       c4 c4 c4 c4
-       s1 
index cd51984d248f113b26f10fdcd2df98a6fd7c5c63..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,9 +0,0 @@
-
-
-\score {
-
-\notes {\notes \reletive c' { 
-  \times 2/3 { [fis8 fis8 fis8]  }
-  \times 2/3 { [b b b]  }
-  bes4   
-}
index 7ccd8d8e649f2f6ead87ed8fb3bf400e4bfa156b..bf6c3e74f93741317cd545daa7ea697ba2cb1075 100644 (file)
@@ -3,6 +3,7 @@
 % declare the standard dynamic identifiers.
 %
 
+pppp = \dynamicscript #"pppp"
 ppp = \dynamicscript #"ppp"
 pp = \dynamicscript #"pp"
 p = \dynamicscript #"p"
@@ -11,6 +12,7 @@ mf = \dynamicscript #"mf"
 f = \dynamicscript #"e"                        % see feta-din layout
 ff = \dynamicscript #"ff"
 fff = \dynamicscript #"fff"
+ffff = \dynamicscript #"ffff"
 fp = \dynamicscript #"fp"
 
 sf = \dynamicscript #"sf"
index 5ed66e729d71fec4128c090523ee80b8be55090d..78deb13655e85df4f7fa1becb6994d9d7588d958 100644 (file)
@@ -26,18 +26,17 @@ outputscale = \staffheight / 4.0;
 
 \translator { \NoteNamesContext }
 \translator { \ScoreContext }
-\translator { \ChoirStaffContext}
-\translator { \GraceContext}
+\translator { \ChoirStaffContext }
+\translator { \GraceContext }
 \translator { \RhythmicStaffContext}
 \translator { \StaffContext }
-\translator { \VoiceContext}
+\translator { \VoiceContext }
 \translator { \StaffGroupContext }
 \translator { \ChordNamesContext }
-\translator { \ChordNamesVoiceContext}
-\translator { \GrandStaffContext}
+\translator { \GrandStaffContext }
 \translator { \LyricsContext }
-\translator { \ThreadContext}
-\translator { \PianoStaffContext}
+\translator { \ThreadContext }
+\translator { \PianoStaffContext }
 \translator { \LyricsVoiceContext }
 \translator { \StaffContainerContext }
 
index 3029e49e94653c72e3fec5770efe75e31012c0b3..5a413798b6d1b4652964360c1bd3fcd9de9bd1f1 100644 (file)
@@ -7,8 +7,8 @@ stemDown = \property Voice.Stem \override #'direction = #-1
 stemBoth= \property Voice.Stem \revert #'direction
 
 slurUp   = \property Voice.Slur \override #'direction = #1
-slurBoth = \property Voice.Slur \revert #'direction 
 slurDown = \property Voice.Slur \override #'direction = #-1
+slurBoth = \property Voice.Slur \revert #'direction 
 shiftOn  = \property Voice.NoteColumn \override #'horizontal-shift = #1
 shiftOnn  = \property Voice.NoteColumn \override #'horizontal-shift = #2
 shiftOnnn  = \property Voice.NoteColumn \override #'horizontal-shift = #3
@@ -31,6 +31,20 @@ dynamicBoth = {
   \property Voice.DynamicLineSpanner \revert #'direction
 }
 
+scriptUp  = {
+  \property Voice.TextScript \override #'direction = #1
+  \property Voice.Script \override #'direction = #1
+}
+scriptDown = {
+  \property Voice.TextScript \override #'direction = #-1
+  \property Voice.Script \override #'direction = #-1
+}
+scriptBoth = {
+  \property Voice.TextScript \revert #'direction
+  \property Voice.Script \revert #'direction
+}
+
+
 cadenzaOn = \property Score.timing = ##f
 cadenzaOff = {
   \property Score.timing = ##t
index 4d2f7b1d3fba813478f0b994c69b3cb6b439d47a..8355a3dc659c1b5daf74d396d50723a283f65f0e 100644 (file)
@@ -26,7 +26,7 @@ make-root?=$(wildcard /usr/local/share/lilypond/make)
 ifneq ($(make-root),)
 ### some versions apparently choke on $(message)
 ### $(message running from $(make-root))
-depth=$(make-root)/..
+depth:=$(make-root)/..
 LOCALSTEPMAKE_TEMPLATES=ly mutopia
 include $(make-root)/stepmake.make
 else
index b819f0747b5428766a550b2d652bb4b228a372d0..5e509eeb33043741a08f3b2e4fed508692ae7c6e 100644 (file)
@@ -7,7 +7,7 @@ else
        wget $(MUTOPIA_MIRROR)/$(mutopia-dir)/$@
 
 %.ly:  %-lys.zip
-       unzip $<
+       unzip -n $<
        $(MAKE) local-convert-ly
 endif
 
index 683c6eb19bd81b6259ae2691504df90b32add355..db6818e2f242e35852cfa6b0db120513a0b60741 100644 (file)
@@ -48,7 +48,7 @@ struct Duration_convert {
   /// Return Rational representation (fraction of whole note).
   static Rational dur2_mom (Duration dur );
 
-  /// Return Mudela string representation.
+  /// Return Lilypond string representation.
   static String dur2_str (Duration dur );
 
   /// Return duration from Rational (fraction of whole) representation.
diff --git a/midi2ly/include/lilypond-column.hh b/midi2ly/include/lilypond-column.hh
new file mode 100644 (file)
index 0000000..15a9097
--- /dev/null
@@ -0,0 +1,29 @@
+//
+// lilypond-column.hh -- declare Lilypond_column
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#ifndef LILYPOND_COLUMN_HH
+#define LILYPOND_COLUMN_HH
+
+#include "flower-proto.hh"
+#include "midi2ly-proto.hh"
+#include "rational.hh"
+#include "cons.hh"
+
+/// (lilypond_column)
+class Lilypond_column 
+{
+public:
+  Lilypond_column (Lilypond_score* lilypond_score_l, Rational mom);
+
+  void add_item (Lilypond_item* lilypond_item_l);
+  Rational at_mom ();
+
+  Cons_list<Lilypond_item> lilypond_item_l_list_;
+  Rational at_mom_;
+  Lilypond_score* lilypond_score_l_;
+};
+
+#endif // LILYPOND_COLUMN_HH
+
diff --git a/midi2ly/include/lilypond-item.hh b/midi2ly/include/lilypond-item.hh
new file mode 100644 (file)
index 0000000..039280c
--- /dev/null
@@ -0,0 +1,130 @@
+//
+// lilypond-item.hh -- declare lilypond_item
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#ifndef LILYPOND_ITEM_HH
+#define LILYPOND_ITEM_HH
+
+#include "midi2ly-proto.hh"
+#include "string.hh"
+#include "rational.hh"
+#include "duration.hh"
+
+// should these:
+// * be Lilypond_items
+// * be Voice_elements/requests
+// * get a name-change
+// ?
+
+/// (lilypond_item)
+class Lilypond_item 
+{
+public:
+  Lilypond_item (Lilypond_column* lilypond_column_l);
+  virtual ~Lilypond_item ();
+    
+  virtual Rational at_mom ();
+  virtual Rational duration_mom ();
+  void output (Lilypond_stream& lilypond_stream_r);
+  virtual String str () = 0;
+
+  Lilypond_column* lilypond_column_l_;
+};
+
+class Lilypond_key : public Lilypond_item 
+{
+public:
+  Lilypond_key (int accidentals_i, int minor_i);
+
+  String notename_str (int pitch_i);
+  virtual String str ();
+
+  //private:
+  int accidentals_i_;
+  int minor_i_;
+};
+
+class Lilypond_time_signature : public Lilypond_item 
+{
+public:
+  Lilypond_time_signature (int num_i, int den_i, int division_4_i, int count_32_i);
+
+  Duration i2_dur (int time_i, int division_1_i);
+  int clocks_1_i ();
+  int den_i ();
+  int num_i ();
+  virtual String str ();
+  Rational bar_mom ();
+
+private:
+  Real sync_f_;
+  Duration sync_dur_;
+  int clocks_1_i_;
+  int num_i_;
+  int den_i_;
+};
+
+class Lilypond_note : public Lilypond_item 
+{
+public:
+  Lilypond_note (Lilypond_column* lilypond_column_l, int channel_i, int pitch_i, int dyn_i);
+
+  Duration duration ();
+  virtual Rational duration_mom ();
+  virtual String str ();
+    
+  //    int const c0_pitch_i_c_ = 60; // huh?
+  static int const c0_pitch_i_c_ = 48;
+
+  static bool const simple_plet_b_s = false;
+  int channel_i_;
+  int pitch_i_;
+  Lilypond_column* end_column_l_;
+};
+
+class Lilypond_skip : public Lilypond_item 
+{
+public:
+  Lilypond_skip (Lilypond_column* lilypond_column_l, Rational skip_mom);
+
+  Duration duration ();
+  virtual Rational duration_mom ();
+  virtual String str ();
+
+private:
+  Rational mom_;
+};
+
+
+class Lilypond_tempo : public Lilypond_item 
+{
+public:
+  Lilypond_tempo (int useconds_per_4_i);
+
+  int get_tempo_i (Rational rational);
+  virtual String str ();
+  int useconds_per_4_i ();
+
+private:
+  int useconds_per_4_i_;
+  Rational seconds_per_1_mom_;
+};
+
+class Lilypond_text : public Lilypond_item 
+{
+public:
+  enum Type { 
+    TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, 
+    MARKER, CUE_POINT
+  };
+  Lilypond_text (Lilypond_text::Type type,  String str);
+  virtual String str ();
+
+  //private:
+  Type type_;
+  String text_str_;
+};
+
+#endif // LILYPOND_ITEM_HH
+
diff --git a/midi2ly/include/lilypond-score.hh b/midi2ly/include/lilypond-score.hh
new file mode 100644 (file)
index 0000000..9076384
--- /dev/null
@@ -0,0 +1,51 @@
+//
+// lilypond-score.hh -- declare Lilypond_score
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#ifndef LILYPOND_SCORE_HH
+#define LILYPOND_SCORE_HH
+
+#include "midi2ly-proto.hh"
+#include "flower-proto.hh"
+#include "cons.hh"
+#include "parray.hh"
+
+/// (lilypond_score)
+class Lilypond_score {
+public:
+  Lilypond_score (int format_i, int tracks_i, int tempo_i);
+  ~Lilypond_score ();
+
+  void add_item (Lilypond_item* lilypond_item_p);
+  void add_staff (Lilypond_staff* lilypond_staff_p);
+
+  Lilypond_column* find_column_l (Rational mom);
+  Lilypond_column* get_column_l (Rational mom);
+
+  void output (String filename_str);
+  void process ();
+
+  // ugh
+  Lilypond_key* lilypond_key_l_;
+  Lilypond_time_signature* lilypond_time_signature_l_;
+  Lilypond_tempo* lilypond_tempo_l_;
+  Lilypond_staff * last_staff_l_;
+private:
+  void filter_tempo ();
+  void quantify_columns ();
+  void quantify_durations ();
+  void settle_columns ();
+
+  Cons_list<Lilypond_staff> lilypond_staff_p_list_;
+  Link_array<Lilypond_column> column_l_array_;
+
+  // ugh, ugh, ugh
+public:
+  int format_i_;
+  int tracks_i_;
+  int tempo_i_;
+};
+
+#endif // LILYPOND_SCORE_HH
+
diff --git a/midi2ly/include/lilypond-staff.hh b/midi2ly/include/lilypond-staff.hh
new file mode 100644 (file)
index 0000000..ceba267
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// lilypond-staff.hh -- declare lilypond_staff
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#ifndef LILYPOND_STAFF_HH
+#define LILYPOND_STAFF_HH
+
+#include "midi2ly-proto.hh"
+#include "flower-proto.hh"
+#include "cons.hh"
+#include "string.hh"
+
+/// (lilypond_staff)
+class Lilypond_staff
+{
+public:
+  Lilypond_staff (int number_i, String copyright_str, String track_name_str, String instrument_str);
+
+  void add_item (Lilypond_item* lilypond_item_p);
+  void eat_voice (Cons_list<Lilypond_item>& items);
+  String id_str ();
+  String name_str ();
+  void output (Lilypond_stream& lilypond_stream_r);
+  void process ();
+
+  String copyright_str_;
+  String instrument_str_;
+  String name_str_;
+  Lilypond_key* lilypond_key_l_;
+  Lilypond_time_signature* lilypond_time_signature_l_;
+  Lilypond_tempo* lilypond_tempo_l_;
+  int number_i_;
+
+private:
+  void output_lilypond_begin_bar (Lilypond_stream& lilypond_stream_r, Rational now_mom, int bar_i);
+
+  Cons_list<Lilypond_voice> lilypond_voice_p_list_;
+  Cons_list<Lilypond_item> lilypond_item_p_list_;
+};
+
+#endif // LILYPOND_STAFF_HH
+
diff --git a/midi2ly/include/lilypond-stream.hh b/midi2ly/include/lilypond-stream.hh
new file mode 100644 (file)
index 0000000..29c1c8c
--- /dev/null
@@ -0,0 +1,42 @@
+//
+//  lilypond-stream.hh -- part of LilyPond
+//
+//  copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+// should i be named Lilypond_stream?
+
+#ifndef LILYPOND_STREAM_HH
+#define LILYPOND_STREAM_HH
+
+#include "midi2ly-proto.hh"
+#include "string.hh"
+//#include "scalar.hh"
+
+/// Lily output
+class Lilypond_stream {
+public:    
+    Lilypond_stream (String filename_str);
+    ~Lilypond_stream();
+
+    Lilypond_stream& operator << (char c);
+    Lilypond_stream& operator << (String s);
+    Lilypond_stream& operator << (Lilypond_item& lilypond_item_r);
+
+private:
+    void handle_pending_indent();
+    void header();
+    void open();
+    void output (String str);
+    void output_wrapped (String str);
+
+    ostream* os_p_;
+    String filename_str_;
+    int indent_i_;
+    int column_i_;
+    int pending_indent_i_;
+    int wrap_column_i_;
+    bool comment_mode_b_;
+};
+
+#endif // LILYPOND_STREAM_HH
+
diff --git a/midi2ly/include/lilypond-voice.hh b/midi2ly/include/lilypond-voice.hh
new file mode 100644 (file)
index 0000000..b64882f
--- /dev/null
@@ -0,0 +1,29 @@
+//
+// lilypond-voice.hh -- declare Lilypond_voice
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#ifndef LILYPOND_VOICE_HH
+#define LILYPOND_VOICE_HH
+
+#include "midi2ly-proto.hh"
+#include "cons.hh"
+
+/// (lilypond_voice)
+class Lilypond_voice
+{
+public:
+  Lilypond_voice (Lilypond_staff* lilypond_staff_l);
+  void add_item (Lilypond_item* lilypond_item_l);
+  void output (Lilypond_stream& lilypond_stream_r);
+  String get_clef () const;
+  Lilypond_item * last_item_l_;
+  Lilypond_note * last_note_l_;
+private:
+  Lilypond_staff* lilypond_staff_l_;
+  Cons_list<Lilypond_item> lilypond_item_l_list_;
+
+};
+
+#endif // LILYPOND_VOICE_HH
+
index d4b498dc0f50b1a3e8d456122369de9a88372782..670ff5ea7eac53c9b3f779feb3c8c92a0c9a9fe0 100644 (file)
@@ -49,7 +49,7 @@ struct Midi_parser_info
   Byte const* byte_L_;
   Byte const* end_byte_L_;
   Source_file* source_l_;
-  Mudela_score* score_l_;
+  Lilypond_score* score_l_;
   Rational bar_mom_;
 };
 
index de2e1db51ea20f387b11a978fb8a4830554000f4..2fca257ec326845f493a6a8f5ebe868e80a12be7 100644 (file)
 class Midi_score_parser : public Midi_parser
 {
 public:
-  Mudela_score* parse (String filename_str, Sources*);
+  Lilypond_score* parse (String filename_str, Sources*);
 
 private:
   void open (String filename_str, Sources*);
 
   void parse_header ();
   int find_earliest_i (Link_array<Midi_track_parser>& tracks);
-  Mudela_score* parse_score ();
+  Lilypond_score* parse_score ();
 };         
 
 #endif // MIDI_SCORE_PARSER_HH
index 21d6988a3bcc0abfa49bb7cc7b3838c3fc68dfa0..89e6363d3d4562b9a228d200d9b792f278af79d8 100644 (file)
@@ -24,20 +24,20 @@ public:
   ~Midi_track_parser ();
 
   Rational at_mom ();
-  Mudela_staff* parse (Mudela_column* col_l);
+  Lilypond_staff* parse (Lilypond_column* col_l);
 
 private:
   bool eot ();
-  void note_end (Mudela_column* col_l, int channel_i, int pitch_i, int aftertouch_i );
-  void note_end_all (Mudela_column* col_l) ;
+  void note_end (Lilypond_column* col_l, int channel_i, int pitch_i, int aftertouch_i );
+  void note_end_all (Lilypond_column* col_l) ;
   void parse_delta_time ();
-  Mudela_item* parse_event (Mudela_column* col_l);
+  Lilypond_item* parse_event (Lilypond_column* col_l);
   void parse_header ();
 
   Rational at_mom_;
   Byte running_byte_;
-  Cons_list<Mudela_note> open_note_l_list_;
-  Mudela_staff* mudela_staff_p_;
+  Cons_list<Lilypond_note> open_note_l_list_;
+  Lilypond_staff* lilypond_staff_p_;
   Midi_parser_info* track_info_p_;
 };
 
index 5ac345ae94fb529f382bd00cc95e47d00ba265e3..dac1d8d1a189539826e771e021dc3740ee9cd351 100644 (file)
@@ -14,16 +14,16 @@ class Midi_parser;
 struct Midi_parser_info;
 class Midi_score_parser;
 class Midi_track_parser;
-class Mudela_stream;
-class Mudela_item;
-class Mudela_key;
-class Mudela_time_signature;
-class Mudela_note;
-class Mudela_tempo;
-class Mudela_text;
-class Mudela_score;
-class Mudela_staff;
-class Mudela_voice;
-class Mudela_column;
+class Lilypond_stream;
+class Lilypond_item;
+class Lilypond_key;
+class Lilypond_time_signature;
+class Lilypond_note;
+class Lilypond_tempo;
+class Lilypond_text;
+class Lilypond_score;
+class Lilypond_staff;
+class Lilypond_voice;
+class Lilypond_column;
 
 #endif // MIDI2LY_PROTO_HH
index ca682b29e4dda6c22b077658b53fb6a2a70fe4fe..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,29 +0,0 @@
-//
-// mudela-column.hh -- declare Mudela_column
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_COLUMN_HH
-#define MUDELA_COLUMN_HH
-
-#include "flower-proto.hh"
-#include "midi2ly-proto.hh"
-#include "rational.hh"
-#include "cons.hh"
-
-/// (mudela_column)
-class Mudela_column 
-{
-public:
-  Mudela_column (Mudela_score* mudela_score_l, Rational mom);
-
-  void add_item (Mudela_item* mudela_item_l);
-  Rational at_mom ();
-
-  Cons_list<Mudela_item> mudela_item_l_list_;
-  Rational at_mom_;
-  Mudela_score* mudela_score_l_;
-};
-
-#endif // MUDELA_COLUMN_HH
-
index 02c726b317b008f8824f3db778175c5a7a507b04..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,130 +0,0 @@
-//
-// mudela-item.hh -- declare mudela_item
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_ITEM_HH
-#define MUDELA_ITEM_HH
-
-#include "midi2ly-proto.hh"
-#include "string.hh"
-#include "rational.hh"
-#include "duration.hh"
-
-// should these:
-// * be Mudela_items
-// * be Voice_elements/requests
-// * get a name-change
-// ?
-
-/// (mudela_item)
-class Mudela_item 
-{
-public:
-  Mudela_item (Mudela_column* mudela_column_l);
-  virtual ~Mudela_item ();
-    
-  virtual Rational at_mom ();
-  virtual Rational duration_mom ();
-  void output (Mudela_stream& mudela_stream_r);
-  virtual String str () = 0;
-
-  Mudela_column* mudela_column_l_;
-};
-
-class Mudela_key : public Mudela_item 
-{
-public:
-  Mudela_key (int accidentals_i, int minor_i);
-
-  String notename_str (int pitch_i);
-  virtual String str ();
-
-  //private:
-  int accidentals_i_;
-  int minor_i_;
-};
-
-class Mudela_time_signature : public Mudela_item 
-{
-public:
-  Mudela_time_signature (int num_i, int den_i, int division_4_i, int count_32_i);
-
-  Duration i2_dur (int time_i, int division_1_i);
-  int clocks_1_i ();
-  int den_i ();
-  int num_i ();
-  virtual String str ();
-  Rational bar_mom ();
-
-private:
-  Real sync_f_;
-  Duration sync_dur_;
-  int clocks_1_i_;
-  int num_i_;
-  int den_i_;
-};
-
-class Mudela_note : public Mudela_item 
-{
-public:
-  Mudela_note (Mudela_column* mudela_column_l, int channel_i, int pitch_i, int dyn_i);
-
-  Duration duration ();
-  virtual Rational duration_mom ();
-  virtual String str ();
-    
-  //    int const c0_pitch_i_c_ = 60; // huh?
-  static int const c0_pitch_i_c_ = 48;
-
-  static bool const simple_plet_b_s = false;
-  int channel_i_;
-  int pitch_i_;
-  Mudela_column* end_column_l_;
-};
-
-class Mudela_skip : public Mudela_item 
-{
-public:
-  Mudela_skip (Mudela_column* mudela_column_l, Rational skip_mom);
-
-  Duration duration ();
-  virtual Rational duration_mom ();
-  virtual String str ();
-
-private:
-  Rational mom_;
-};
-
-
-class Mudela_tempo : public Mudela_item 
-{
-public:
-  Mudela_tempo (int useconds_per_4_i);
-
-  int get_tempo_i (Rational rational);
-  virtual String str ();
-  int useconds_per_4_i ();
-
-private:
-  int useconds_per_4_i_;
-  Rational seconds_per_1_mom_;
-};
-
-class Mudela_text : public Mudela_item 
-{
-public:
-  enum Type { 
-    TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, 
-    MARKER, CUE_POINT
-  };
-  Mudela_text (Mudela_text::Type type,  String str);
-  virtual String str ();
-
-  //private:
-  Type type_;
-  String text_str_;
-};
-
-#endif // MUDELA_ITEM_HH
-
index 27162e493863ffeb39d2fc7a527032a074d3058b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,51 +0,0 @@
-//
-// mudela-score.hh -- declare Mudela_score
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_SCORE_HH
-#define MUDELA_SCORE_HH
-
-#include "midi2ly-proto.hh"
-#include "flower-proto.hh"
-#include "cons.hh"
-#include "parray.hh"
-
-/// (mudela_score)
-class Mudela_score {
-public:
-  Mudela_score (int format_i, int tracks_i, int tempo_i);
-  ~Mudela_score ();
-
-  void add_item (Mudela_item* mudela_item_p);
-  void add_staff (Mudela_staff* mudela_staff_p);
-
-  Mudela_column* find_column_l (Rational mom);
-  Mudela_column* get_column_l (Rational mom);
-
-  void output (String filename_str);
-  void process ();
-
-  // ugh
-  Mudela_key* mudela_key_l_;
-  Mudela_time_signature* mudela_time_signature_l_;
-  Mudela_tempo* mudela_tempo_l_;
-  Mudela_staff * last_staff_l_;
-private:
-  void filter_tempo ();
-  void quantify_columns ();
-  void quantify_durations ();
-  void settle_columns ();
-
-  Cons_list<Mudela_staff> mudela_staff_p_list_;
-  Link_array<Mudela_column> column_l_array_;
-
-  // ugh, ugh, ugh
-public:
-  int format_i_;
-  int tracks_i_;
-  int tempo_i_;
-};
-
-#endif // MUDELA_SCORE_HH
-
index 38be04823c6d94b51fc8cb16bc6ae62156027bb0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,43 +0,0 @@
-//
-// mudela-staff.hh -- declare mudela_staff
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_STAFF_HH
-#define MUDELA_STAFF_HH
-
-#include "midi2ly-proto.hh"
-#include "flower-proto.hh"
-#include "cons.hh"
-#include "string.hh"
-
-/// (mudela_staff)
-class Mudela_staff
-{
-public:
-  Mudela_staff (int number_i, String copyright_str, String track_name_str, String instrument_str);
-
-  void add_item (Mudela_item* mudela_item_p);
-  void eat_voice (Cons_list<Mudela_item>& items);
-  String id_str ();
-  String name_str ();
-  void output (Mudela_stream& mudela_stream_r);
-  void process ();
-
-  String copyright_str_;
-  String instrument_str_;
-  String name_str_;
-  Mudela_key* mudela_key_l_;
-  Mudela_time_signature* mudela_time_signature_l_;
-  Mudela_tempo* mudela_tempo_l_;
-  int number_i_;
-
-private:
-  void output_mudela_begin_bar (Mudela_stream& mudela_stream_r, Rational now_mom, int bar_i);
-
-  Cons_list<Mudela_voice> mudela_voice_p_list_;
-  Cons_list<Mudela_item> mudela_item_p_list_;
-};
-
-#endif // MUDELA_STAFF_HH
-
index 04ddbd86e9d72d4704fda6fa5a9f3f5d92b685ed..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,42 +0,0 @@
-//
-//  mudela-stream.hh -- part of LilyPond
-//
-//  copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-// should i be named Mudela_stream?
-
-#ifndef MUDELA_STREAM_HH
-#define MUDELA_STREAM_HH
-
-#include "midi2ly-proto.hh"
-#include "string.hh"
-//#include "scalar.hh"
-
-/// Lily output
-class Mudela_stream {
-public:    
-    Mudela_stream (String filename_str);
-    ~Mudela_stream();
-
-    Mudela_stream& operator << (char c);
-    Mudela_stream& operator << (String s);
-    Mudela_stream& operator << (Mudela_item& mudela_item_r);
-
-private:
-    void handle_pending_indent();
-    void header();
-    void open();
-    void output (String str);
-    void output_wrapped (String str);
-
-    ostream* os_p_;
-    String filename_str_;
-    int indent_i_;
-    int column_i_;
-    int pending_indent_i_;
-    int wrap_column_i_;
-    bool comment_mode_b_;
-};
-
-#endif // MUDELA_STREAM_HH
-
index a3fff8bdc569701c90188d09b4a14af6be66ce12..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,29 +0,0 @@
-//
-// mudela-voice.hh -- declare Mudela_voice
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_VOICE_HH
-#define MUDELA_VOICE_HH
-
-#include "midi2ly-proto.hh"
-#include "cons.hh"
-
-/// (mudela_voice)
-class Mudela_voice
-{
-public:
-  Mudela_voice (Mudela_staff* mudela_staff_l);
-  void add_item (Mudela_item* mudela_item_l);
-  void output (Mudela_stream& mudela_stream_r);
-  String get_clef () const;
-  Mudela_item * last_item_l_;
-  Mudela_note * last_note_l_;
-private:
-  Mudela_staff* mudela_staff_l_;
-  Cons_list<Mudela_item> mudela_item_l_list_;
-
-};
-
-#endif // MUDELA_VOICE_HH
-
diff --git a/midi2ly/lilypond-column.cc b/midi2ly/lilypond-column.cc
new file mode 100644 (file)
index 0000000..136f10a
--- /dev/null
@@ -0,0 +1,24 @@
+//
+// lilypond-column.cc -- implement Lilypond_column
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#include "lilypond-column.hh"
+
+Lilypond_column::Lilypond_column (Lilypond_score* lilypond_score_l, Rational mom)
+{
+  lilypond_score_l_ = lilypond_score_l;
+  at_mom_ = mom;
+}
+
+void 
+Lilypond_column::add_item (Lilypond_item* lilypond_item_l)
+{
+   lilypond_item_l_list_.append (new Cons<Lilypond_item> (lilypond_item_l, 0));
+}
+
+Rational
+Lilypond_column::at_mom()
+{
+  return at_mom_;
+}
diff --git a/midi2ly/lilypond-item.cc b/midi2ly/lilypond-item.cc
new file mode 100644 (file)
index 0000000..2f70f5d
--- /dev/null
@@ -0,0 +1,364 @@
+//
+// lilypond-item.cc -- implement Lilypond_item
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#include <string.h>
+#include <assert.h>
+#include "midi2ly-global.hh"
+#include "string-convert.hh"
+#include "duration-convert.hh"
+#include "lilypond-column.hh"
+#include "lilypond-item.hh"
+#include "lilypond-stream.hh"
+#include "lilypond-score.hh"
+
+Lilypond_item::Lilypond_item (Lilypond_column* lilypond_column_l)
+{
+  lilypond_column_l_ = lilypond_column_l;
+}
+
+Lilypond_item::~Lilypond_item ()
+{
+}
+
+Rational
+Lilypond_item::at_mom ()
+{
+  return lilypond_column_l_->at_mom ();
+}
+
+Rational
+Lilypond_item::duration_mom ()
+{
+  return Rational (0);
+}
+
+void
+Lilypond_item::output (Lilypond_stream& lilypond_stream_r)
+{
+  lilypond_stream_r << str () << " ";
+}
+
+Lilypond_key::Lilypond_key (int accidentals_i, int minor_i)
+  : Lilypond_item (0)
+{
+  accidentals_i_ = accidentals_i;
+  minor_i_ = minor_i;
+}
+
+char const *accname[] = {"eses", "es", "", "is" , "isis"};
+
+String
+Lilypond_key::str ()
+{
+  int key_i = accidentals_i_ >= 0
+    ? ((accidentals_i_ % 7) ["cgdaebf"] - 'a' - 2 -2 * minor_i_ + 7) % 7
+    : ((-accidentals_i_ % 7) ["cfbeadg"] - 'a' - 2 -2 * minor_i_ + 7) % 7;
+  
+  String notename_str = !minor_i_
+    ? to_str ((char) ((key_i + 2) % 7 + 'a'))
+    : to_str ((char) ((key_i + 2) % 7 + 'a'));
+
+  // fis cis gis dis ais eis bis
+  static int sharps_i_a [7] = { 2, 4, 6, 1, 3, 5, 7 };
+  // bes es as des ges ces fes
+  static int flats_i_a [7] = { 6, 4, 2, 7, 5, 3, 1 };
+  int accidentals_i = accidentals_i_ >= 0
+                             ? sharps_i_a [key_i] <= accidentals_i_ ? 1 : 0
+                             : flats_i_a [key_i] <= -accidentals_i_ ? -1 : 0;
+                              
+  if (accidentals_i)
+    notename_str += String (accname [accidentals_i + 2]);
+
+  return "\\key " + notename_str  + (minor_i_ ? "\\minor" : "\\major") + ";\n";
+}
+
+String
+Lilypond_key::notename_str (int pitch_i)
+{
+  // this may seem very smart,
+  // but it-s only an excuse not to read a notename table
+
+  // major scale: do-do
+  // minor scale: la-la  (= + 5)
+  static int notename_i_a [12] = { 0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6 };
+  int notename_i = notename_i_a [pitch_i % 12];
+
+  static int accidentals_i_a [12] = { 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 };
+  int accidental_i = accidentals_i_a [(minor_i_ * 5 + pitch_i) % 12];
+  if (accidental_i &&  (accidentals_i_ < 0))
+    {
+      accidental_i *= -1;
+      notename_i =  (notename_i + 1) % 7;
+    }
+
+  String notename_str = to_str ((char)(((notename_i + 2) % 7) + 'a'));
+  if (accidental_i)
+    notename_str += String (accname [accidental_i + 2]);
+
+  /*
+    By tradition, all scales now consist of a sequence of 7 notes each
+    with a distinct name, from amongst a b c d e f g.  But, minor scales
+    have a wide second interval at the top - the 'leading note' is
+    sharped. (Why? it just works that way! Anything else doesn't sound as
+    good and isn't as flexible at saying things. In medieval times,
+    scales only had 6 notes to avoid this problem - the hexachords.)
+    
+    So, the d minor scale is d e f g a b-flat c-sharp d - using d-flat
+    for the leading note would skip the name c and duplicate the name d.
+    Why isn't c-sharp put in the key signature? Tradition. (It's also
+    supposedly based on the Pythagorean theory of the cycle of fifths,
+    but that really only applies to major scales...)
+    
+    Anyway, g minor is g a b-flat c d e-flat f-sharp g, and all the other
+    flat minor keys end up with a natural leading note. And there you
+    have it.
+    
+    John Sankey <bf250@freenet.carleton.ca>
+
+    Let's also do a-minor: a b c d e f gis a
+
+    --jcn
+
+   */
+
+  /* ok, bit ugly, but here we go -- jcn */
+
+
+  if (minor_i_)
+    {
+     if ((accidentals_i_ == 0) && (notename_str == "as"))
+       notename_str = "gis";
+     else if ((accidentals_i_ == -1) && (notename_str == "des"))
+       notename_str = "cis";
+     else if ((accidentals_i_ == -2) && (notename_str == "ges"))
+      notename_str = "fis";
+     else if ((accidentals_i_ == 5) && (notename_str == "g"))
+       notename_str = "fisis";
+     else if ((accidentals_i_ == 6) && (notename_str == "d"))
+      notename_str = "cisis";
+     else if ((accidentals_i_ == 7) && (notename_str == "a"))
+      notename_str = "gisis";
+
+     if ((accidentals_i_ <= -6) && (notename_str == "b"))
+      notename_str = "ces";
+     if ((accidentals_i_ <= -7) && (notename_str == "e"))
+      notename_str = "fes";
+    }
+             
+  String de_octavate_str = to_str (',',  (Lilypond_note::c0_pitch_i_c_ + 11 - pitch_i) / 12);
+  String octavate_str = to_str ('\'',  (pitch_i - Lilypond_note::c0_pitch_i_c_) / 12);
+  return notename_str +de_octavate_str  + octavate_str;
+}
+
+Lilypond_time_signature::Lilypond_time_signature (int num_i, int den_i, int clocks_4_i, int count_32_i)
+  : Lilypond_item (0)
+{
+  sync_dur_.durlog_i_ = 3;
+  sync_f_ = 1.0;
+  if (count_32_i != 8)
+    warning (_f ("#32 in quarter: %d", count_32_i));
+  num_i_ = num_i;
+  den_i_ = den_i;
+  clocks_1_i_ = clocks_4_i * 4;
+}
+
+Rational
+Lilypond_time_signature::bar_mom ()
+{
+  Duration d;
+  d.durlog_i_ = den_i_;
+  return Rational (num_i_) * Duration_convert::dur2_mom (d);
+}
+
+int
+Lilypond_time_signature::clocks_1_i ()
+{
+  return clocks_1_i_;
+}
+
+int
+Lilypond_time_signature::den_i ()
+{
+  return den_i_;
+}
+
+int
+Lilypond_time_signature::num_i ()
+{
+  return num_i_;
+}
+
+String
+Lilypond_time_signature::str ()
+{
+  String str = "\\time "
+    + to_str (num_i_) + "/" + to_str (1 << den_i_)
+    + ";\n";
+  return str;
+}
+
+
+// statics Lilypond_note
+/*
+  this switch can be used to write simple plets like
+  c4*2/3
+  as
+  \plet 2/3; c4 \plet 1/1;
+ */
+/*
+  UGH: .hh says false, .cc says true.
+  FIXME.
+ */
+bool const Lilypond_note::simple_plet_b_s;
+
+Lilypond_note::Lilypond_note (Lilypond_column* lilypond_column_l,
+                         int channel_i, int pitch_i, int dyn_i)
+  : Lilypond_item (lilypond_column_l)
+{
+  // junk dynamics
+  (void)dyn_i;
+  channel_i_ = channel_i;
+  pitch_i_ = pitch_i;
+  end_column_l_ = 0;
+}
+
+Duration
+Lilypond_note::duration ()
+{
+  assert (end_column_l_);
+  Rational mom = end_column_l_->at_mom () - at_mom ();
+  return Duration_convert::mom2_dur (mom);
+}
+
+Rational
+Lilypond_note::duration_mom ()
+{
+  assert (end_column_l_);
+  return end_column_l_->at_mom () - at_mom ();
+}
+
+String
+Lilypond_note::str ()
+{
+  Duration dur = duration ();
+  if (dur.durlog_i_ < -10)
+    return "";
+
+  String name_str
+    = lilypond_column_l_->lilypond_score_l_->lilypond_key_l_->notename_str (pitch_i_);
+
+  if (simple_plet_b_s)
+    return name_str + Duration_convert::dur2_str (dur) + " ";
+
+  String str;
+
+  //ugh
+  if (dur.plet_b ())
+    str += String ("\\times ")
+      + String_convert::i2dec_str (dur.plet_.iso_i_, 0, 0)
+      + "/"
+      + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0)
+      + " { ";
+  
+
+  str += name_str;
+
+  Duration tmp = dur;
+  tmp.set_plet (1,1);
+  str += Duration_convert::dur2_str (tmp);
+
+  if (dur.plet_b ())
+    str += String (" }");
+
+  /* 
+     note of zero duration is nonsense, 
+     but let's output anyway for convenient debugging
+  */
+  if (!duration_mom ())
+    return String ("\n% ") + str + "\n";
+
+  return str + " ";
+}
+
+Lilypond_skip::Lilypond_skip (Lilypond_column* lilypond_column_l, Rational skip_mom)
+  : Lilypond_item (lilypond_column_l)
+{
+  mom_ = skip_mom;
+}
+
+Duration
+Lilypond_skip::duration ()
+{
+  return Duration_convert::mom2_dur (mom_);
+}
+
+Rational
+Lilypond_skip::duration_mom ()
+{
+  return Duration_convert::dur2_mom (duration ());
+}
+
+String
+Lilypond_skip::str ()
+{
+  if (!mom_)
+    return String ("");
+
+  Duration dur = duration ();
+  if (dur.durlog_i_<-10)
+    return "";
+
+  String str = "\\skip ";
+  str += Duration_convert::dur2_str (dur) + "; ";
+
+  return str;
+}
+
+Lilypond_tempo::Lilypond_tempo (int useconds_per_4_i)
+  : Lilypond_item (0)
+{
+  useconds_per_4_i_ = useconds_per_4_i;
+  seconds_per_1_mom_ = Rational(useconds_per_4_i_ *4, 1e6);
+}
+
+String
+Lilypond_tempo::str ()
+{
+  String str = "\\tempo 4=";
+  str += to_str (get_tempo_i (Rational (1, 4)));
+  str += ";\n";
+  return str;
+}
+
+int
+Lilypond_tempo::useconds_per_4_i ()
+{
+  return useconds_per_4_i_;
+}
+
+int
+Lilypond_tempo::get_tempo_i (Rational rational)
+{
+  Rational m1 = Rational (60) / rational;
+  Rational m2 = seconds_per_1_mom_;
+  return m1 / m2;
+}
+
+Lilypond_text::Lilypond_text (Lilypond_text::Type type, String text_str)
+  : Lilypond_item (0)
+{
+  type_ = type;
+  text_str_ = text_str;
+}
+
+String
+Lilypond_text::str ()
+{
+  if (!text_str_.length_i ()
+      ||  (text_str_.length_i () != (int)strlen (text_str_.ch_C ())))
+    return "";
+
+  return "% " + text_str_ + "\n";
+}
diff --git a/midi2ly/lilypond-score.cc b/midi2ly/lilypond-score.cc
new file mode 100644 (file)
index 0000000..066f09d
--- /dev/null
@@ -0,0 +1,256 @@
+//
+// lilypond-score.cc -- implement Lilypond_score
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#include <assert.h>
+#include "rational.hh"
+#include "duration.hh"
+#include "duration-convert.hh"
+#include "midi2ly-global.hh"
+#include "lilypond-column.hh"
+#include "lilypond-item.hh"
+#include "lilypond-score.hh"
+#include "lilypond-staff.hh"
+#include "lilypond-stream.hh"
+
+#include "killing-cons.tcc"
+
+//static Lilypond_key key_c (0, 0);
+static Lilypond_time_signature time_sig_4 (4, 2, 24, 8);
+// useconds per 4: 250000 === 60 4 per minute
+static Lilypond_tempo tempo_60 (1000000);
+
+Lilypond_score::Lilypond_score (int format_i, int tracks_i, int tempo_i)
+{
+  last_staff_l_ =0;
+  format_i_ = format_i;
+  tracks_i_ = tracks_i;
+  tempo_i_ = tempo_i;
+  column_l_array_.push (new Lilypond_column (this, Rational (0)));
+  //  lilypond_key_l_ = &key_c;
+  lilypond_key_l_ = 0;
+  lilypond_time_signature_l_ = &time_sig_4;
+  lilypond_tempo_l_ = &tempo_60;
+}
+
+Lilypond_score::~Lilypond_score ()
+{
+}
+
+void
+Lilypond_score::add_item (Lilypond_item* lilypond_item_p)
+{
+  last_staff_l_->add_item (lilypond_item_p);
+}
+
+void
+Lilypond_score::add_staff (Lilypond_staff* lilypond_staff_p)
+{
+  lilypond_staff_p_list_.append (new Killing_cons<Lilypond_staff> (lilypond_staff_p, 0));
+  last_staff_l_ = lilypond_staff_p;
+}
+
+Lilypond_column*
+Lilypond_score::find_column_l (Rational mom)
+{
+  int upper_i = max (0, column_l_array_.size () - 1);
+  int lower_i = 0;
+  int i = 0; //upper_i;
+  while (1)
+    {
+      Rational i_mom = column_l_array_ [i]->at_mom ();
+      if (i_mom == mom)
+       return column_l_array_ [i];
+      if (mom < i_mom)
+       upper_i = i;
+      else
+       lower_i = i;
+      if ( (upper_i == lower_i) || (i == column_l_array_.size () - 1))
+       {
+         // we don't do inserts
+         assert (0);
+         Lilypond_column* col_p = new Lilypond_column (this, mom);
+         column_l_array_.push (col_p);
+         return col_p;
+        }
+      i = (upper_i + lower_i + 1 ) / 2;
+    }
+  assert (0);
+  return 0;
+}
+
+Lilypond_column*
+Lilypond_score::get_column_l (Rational mom)
+{
+  int i;
+  Lilypond_column *c=0;
+  for (i=column_l_array_.size () - 1; !c && i >=0; i--)
+    {
+      if (column_l_array_ [i]->at_mom () == mom )
+       c = column_l_array_[i];
+      else if (column_l_array_[i]->at_mom () < mom)
+       break;
+    }
+  if (!c)
+    {
+      c = new Lilypond_column (this, mom);
+      column_l_array_.insert (c, i+1);
+    }
+
+  assert (c->at_mom () == mom);
+  return c;
+}
+
+void
+Lilypond_score::output (String filename_str)
+{
+  LOGOUT (NORMAL_ver) << _f ("Lily output to %s...", filename_str) << endl;
+  
+  // ugh, ugly midi type 1 fix
+  if ( (lilypond_staff_p_list_.size_i () == 1)
+       && !lilypond_staff_p_list_.head_->car_->number_i_)
+    lilypond_staff_p_list_.head_->car_->number_i_ = 1;
+  
+  int track_i = 0;
+  Lilypond_stream lilypond_stream (filename_str);
+  for (Cons<Lilypond_staff>* i = lilypond_staff_p_list_.head_; i; i = i->next_)
+    {
+      LOGOUT (NORMAL_ver) << _f ("track %d:", track_i++) << flush;
+      i->car_->output (lilypond_stream);
+      lilypond_stream << '\n';
+      LOGOUT (NORMAL_ver) << endl;
+    }
+  
+  lilypond_stream << "\\score{\n";
+  if (lilypond_staff_p_list_.size_i () > 1)
+    lilypond_stream << "< \n";
+  for (Cons<Lilypond_staff>* i = lilypond_staff_p_list_.head_; i; i = i->next_)
+    {
+      if ( (lilypond_staff_p_list_.size_i () != 1)
+          && (i->car_ == lilypond_staff_p_list_.head_->car_))
+       continue;
+      lilypond_stream << "\\context Staff = \"" << i->car_->id_str () << "\" ";
+      lilypond_stream << String ("\\" +  i->car_->id_str ()) << '\n';
+    }
+  if (lilypond_staff_p_list_.size_i () > 1)
+    lilypond_stream << ">\n";
+  
+  lilypond_stream << "\\paper{}\n";
+  
+#if 1
+  lilypond_stream << "\\midi{\n";
+  
+  // let's not use silly 0 track
+  last_cons (lilypond_staff_p_list_.head_)->car_->lilypond_tempo_l_->output (lilypond_stream);
+  lilypond_stream << "}\n";
+#endif
+  
+  lilypond_stream << "}\n";
+}
+  
+void
+Lilypond_score::process ()
+{
+  LOGOUT (NORMAL_ver) << '\n' << _ ("Processing...") << endl;
+  
+  LOGOUT (DEBUG_ver) << "columns\n";
+  
+  settle_columns ();
+  filter_tempo ();
+  quantify_columns ();
+  quantify_durations ();
+  
+  LOGOUT (NORMAL_ver) << '\n' << _ ("Creating voices...") << endl;
+  int track_i = 0;
+  for (Cons<Lilypond_staff>* i = lilypond_staff_p_list_.head_; i; i = i->next_)
+    {
+      LOGOUT (NORMAL_ver) << _ ("track ") << track_i++ << ": " << flush;
+      i->car_->process ();
+      LOGOUT (NORMAL_ver) << endl;
+    }
+}
+  
+void
+Lilypond_score::filter_tempo ()
+{
+  LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Filtering tempo...") << endl;
+}
+  
+void
+Lilypond_score::quantify_columns ()
+{
+  // ugh
+  if (Duration_convert::no_quantify_b_s)
+    {
+      LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Quantifying columns...") << endl;
+      return;
+    }
+  
+  LOGOUT (NORMAL_ver) << '\n' << _ ("Quantifying columns...") << endl;
+  
+  int current_bar_i = 0;
+  Rational bar_mom = lilypond_time_signature_l_->bar_mom ();
+  
+  int n = 5 >? Duration_convert::no_smaller_than_i_s;
+  n = Duration_convert::type2_i (n);
+  Rational s = Rational (1, n);
+  for (int i = 0; i < column_l_array_.size (); i++)
+    {
+      column_l_array_ [i]->at_mom_ =
+       s * Rational ( (int) ( (column_l_array_ [i]->at_mom ()) / s));
+  
+      int bar_i = (int) (column_l_array_ [i]->at_mom () / bar_mom) + 1;
+      if (bar_i > current_bar_i)
+
+       {
+         LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush;
+         current_bar_i = bar_i;
+       }
+    }
+  LOGOUT (NORMAL_ver) << endl;
+}
+  
+void
+Lilypond_score::quantify_durations ()
+{
+  
+}
+  
+void
+Lilypond_score::settle_columns ()
+{
+  LOGOUT (NORMAL_ver) << '\n' << _ ("Settling columns...") << endl;
+  
+  int n = column_l_array_.size ();
+  
+  int start_i = 0;
+  int end_i = 0;
+  Rational start_mom = 0;
+
+  Duration smallest_dur;
+  smallest_dur.durlog_i_ =  6;
+  Rational const noise_mom = Duration_convert::dur2_mom (smallest_dur)
+    / Rational (2);
+  for (int i = 0; i < n; i++)
+    {
+      if (!start_i)
+       {
+         start_i = end_i = i;
+         start_mom = column_l_array_ [i]->at_mom ();
+         continue;
+       }
+
+      // find all columns within noise's distance
+      while ( (i < n)
+             && (column_l_array_ [i]->at_mom () - start_mom < noise_mom))
+       end_i = ++i;
+
+      // bluntly set all to time of first in group
+      for (int j = start_i; j < end_i; j++)
+       column_l_array_ [j]->at_mom_ = start_mom;
+
+      start_i = end_i = 0;
+    }
+}
+
diff --git a/midi2ly/lilypond-staff.cc b/midi2ly/lilypond-staff.cc
new file mode 100644 (file)
index 0000000..0e79b7f
--- /dev/null
@@ -0,0 +1,339 @@
+//
+// lilypond-staff.cc -- implement Lilypond_staff
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#include <assert.h>
+#include <ctype.h>
+#include "rational.hh"
+#include "duration-convert.hh"
+#include "string-convert.hh"
+#include "midi2ly-proto.hh"
+#include "midi2ly-global.hh"
+#include "lilypond-column.hh"
+#include "lilypond-item.hh"
+#include "lilypond-staff.hh"
+#include "lilypond-stream.hh"
+#include "lilypond-voice.hh"
+#include "lilypond-score.hh"
+
+#include "killing-cons.tcc"
+
+extern Lilypond_score* lilypond_score_l_g;
+
+Lilypond_staff::Lilypond_staff (int number_i, String copyright_str, String track_name_str, String instrument_str)
+{
+  number_i_ = number_i;
+  copyright_str_ = copyright_str;
+  instrument_str_ = instrument_str;
+  name_str_ = track_name_str;
+  lilypond_key_l_ = 0;
+  lilypond_time_signature_l_ = 0;
+  lilypond_tempo_l_ = 0;
+}
+
+void
+Lilypond_staff::add_item (Lilypond_item* lilypond_item_p)
+{
+  lilypond_item_p_list_.append (new Killing_cons <Lilypond_item> (lilypond_item_p, 0));
+  if (lilypond_item_p->lilypond_column_l_)
+    lilypond_item_p->lilypond_column_l_->add_item (lilypond_item_p);
+}
+/**
+   Walk ITEMS and find voices.  Remove categorised items.
+
+   TODO: 
+   
+     * collect all channels into separate voices. Use chords for sim
+       notes on same channel.
+     * assume voices/assume chords modes.
+   
+ */
+void
+Lilypond_staff::eat_voice (Cons_list<Lilypond_item>& items)
+{
+  Lilypond_voice* voice_p = new Lilypond_voice (this);
+  lilypond_voice_p_list_.append (new Killing_cons<Lilypond_voice> (voice_p, 0));
+
+  //    Rational mom = items.top ()->at_mom ();
+  Rational mom = 0;
+
+  for (Cons<Lilypond_item>** pp = &items.head_; *pp;)
+    {
+      Cons<Lilypond_item>* i = *pp;
+      if (i->car_->at_mom () > mom)
+       {
+         if (no_rests_b_g && voice_p->last_note_l_)
+           {
+             voice_p->last_note_l_->end_column_l_ = i->car_->lilypond_column_l_;
+           }
+         else
+           {
+             /* uh, what about quantisation?  This should probably
+                use  mom2standardised_dur ()
+                arg, urg: skip should get duration from start/end columns!
+               */
+
+             Rational r = i->car_->at_mom () - mom;
+             // ugh, need score
+             Lilypond_column* start = lilypond_score_l_g->find_column_l (mom);
+             voice_p->add_item (new Lilypond_skip (start, r));
+           }
+
+         mom = i->car_->at_mom ();
+         continue;             // unnecessary
+       }
+      
+      Link_array<Lilypond_item> now_items;
+      for (Cons<Lilypond_item> *cp = i; cp && cp->car_->at_mom () == mom; cp = cp->next_)
+       now_items.push (i->car_);
+
+#if 0
+      /*
+        Why don't we use <note>, if voice has:
+
+         <note> <key-change>
+
+        we'd get last_item == key_change -> last_note == 0;
+       */
+      Lilypond_note * last_note = dynamic_cast<Lilypond_note*> (voice_p->last_item_l_);
+#else
+      /*
+        Not sure, is this better?
+       */
+      Lilypond_note * last_note = voice_p->last_note_l_;
+#endif
+
+      Link_array<Lilypond_item> candidates; 
+
+      for (int i=0; last_note && i < now_items.size (); i++)
+       {
+         Lilypond_note * now_note = dynamic_cast<Lilypond_note*> (now_items[i]);
+         if (now_note && last_note->channel_i_ != now_note->channel_i_)
+           candidates.push (now_note);
+       }
+
+      if (candidates.size())
+       {
+         now_items = candidates;
+       }
+
+      Lilypond_item * which = 0;
+      if (now_items.size () > 1)
+       {
+         int mindiff = 100000; // ugh
+         for (int i=0; last_note && i < now_items.size (); i++)
+           {
+             Lilypond_note *nt = dynamic_cast<Lilypond_note*> (now_items[i]);
+             if (!nt)
+               continue;
+             int diff = abs (last_note->pitch_i_ - nt->pitch_i_ );
+             if(diff < mindiff)
+               {
+                 mindiff =  diff;
+                 which = now_items [i];
+               }
+           }
+
+         if (which && mindiff > 18)            // more than 1.5 octaves apart.  Don't put in same voice.
+           {
+             which =0;
+           }
+       }
+      else if (now_items.size () == 1)
+       which = now_items[0];
+      
+      if (which)
+       {
+         while ((*pp)->car_ != which)
+           pp = &(*pp)->next_;
+      
+         mom += (*pp)->car_->duration_mom ();
+         Cons<Lilypond_item>* c = items.remove_cons (pp);
+         voice_p->add_item (c->car_);
+         delete c;
+       }
+      else 
+       {
+         pp = &(*pp)->next_;
+         continue;
+       }
+    }
+}
+
+String
+Lilypond_staff::id_str ()
+{
+  String id (name_str ());
+  char *cp = id.ch_l ();
+  char *end = cp + id.length_i ();
+  for (;cp < end; cp++)
+    {
+      if (!isalpha (*cp))
+       {
+         *cp = 'X';
+       }
+    }
+  return id;
+}
+
+String
+Lilypond_staff::name_str ()
+{
+  if (name_str_.length_i ())
+    return name_str_;
+  return String ("track") + to_str (char ('A' - 1 + number_i_));
+}
+
+
+
+void
+Lilypond_staff::output (Lilypond_stream& lilypond_stream_r)
+{
+  int c =0;
+  
+  String trackbody = "";
+  for (Cons<Lilypond_voice>* i = lilypond_voice_p_list_.head_; i; i = i->next_)
+    {
+      String voicename = id_str () + "voice" + to_str (char (c + 'A'));
+      
+      lilypond_stream_r << voicename << " = \\notes ";
+
+      trackbody += "\\"  + voicename + "\n";
+
+      lilypond_stream_r << '\n';
+      i->car_->output (lilypond_stream_r);
+      c++;      
+    }
+
+  lilypond_stream_r << _ ("% MIDI copyright:") << copyright_str_ << '\n';
+  lilypond_stream_r << _ ("% MIDI instrument:") << instrument_str_ << '\n';
+  lilypond_stream_r << id_str () << " = ";
+  lilypond_stream_r << "<\n " << trackbody << " >\n";
+
+  lilypond_stream_r << " % " << name_str () << '\n';
+}
+
+void
+Lilypond_staff::output_lilypond_begin_bar (Lilypond_stream& lilypond_stream_r, Rational now_mom, int bar_i)
+{
+  Rational bar_mom = lilypond_time_signature_l_->bar_mom ();
+  Rational into_bar_mom = now_mom - Rational (bar_i - 1) * bar_mom;
+  if (bar_i > 1)
+    {
+      if (!into_bar_mom)
+       lilypond_stream_r << "|\n";
+    }
+  lilypond_stream_r << "% " << String_convert::i2dec_str (bar_i, 0, ' ');
+  if (into_bar_mom)
+    lilypond_stream_r << ":" << Duration_convert::dur2_str (Duration_convert::mom2_dur (into_bar_mom));
+  lilypond_stream_r << '\n';
+}
+
+
+#if 0 // not used for now
+void
+Lilypond_staff::output_lilypond_rest (Lilypond_stream& lilypond_stream_r, Rational begin_mom, Rational end_mom)
+{
+  Rational bar_mom = lilypond_time_signature_l_->bar_mom ();
+  Rational now_mom = begin_mom;
+
+  int begin_bar_i = (int) (now_mom / bar_mom) + 1;
+  int end_bar_i = (int) (end_mom / bar_mom) + 1;
+
+  if (end_bar_i == begin_bar_i)
+    {
+      output_lilypond_rest_remain (lilypond_stream_r, end_mom - begin_mom);
+      return;
+    }
+
+  // multiple bars involved
+  int bar_i = (int) (now_mom / bar_mom) + 1;
+
+  //fill current bar
+  Rational begin_bar_mom = Rational (begin_bar_i - 1) * bar_mom;
+  if (now_mom > begin_bar_mom)
+    {
+      int next_bar_i = (int) (now_mom / bar_mom) + 2;
+      Rational next_bar_mom = Rational (next_bar_i - 1) * bar_mom;
+      assert (next_bar_mom <= end_mom);
+
+      Rational remain_mom = next_bar_mom - now_mom;
+      if (remain_mom > Rational (0))
+       {
+         output_lilypond_rest_remain (lilypond_stream_r, remain_mom);
+         now_mom += remain_mom;
+       }
+
+      bar_i = check_end_bar_i (now_mom, bar_i);
+    }
+
+  // fill whole bars
+  int count_i = end_bar_i - bar_i;
+  for (int i = 0; i < count_i; i++)
+    {
+      int begin_bar_i = check_begin_bar_i (now_mom, bar_i);
+      if (begin_bar_i)
+       output_lilypond_begin_bar (lilypond_stream_r, now_mom, begin_bar_i);
+      lilypond_stream_r << "r1 ";
+      //       *lilypond_stream_r.os_p_ << flush;
+      if (begin_bar_i)
+       LOGOUT (NORMAL_ver) << begin_bar_i << flush;
+      bar_i = check_end_bar_i (now_mom, bar_i);
+      now_mom += bar_mom;
+    }
+
+  // use "int i" here, and gcc 2.7.2 hits internal compiler error
+  int ii = check_begin_bar_i (now_mom, bar_i);
+  if (ii)
+    output_lilypond_begin_bar (lilypond_stream_r, now_mom, ii);
+
+  //    bar_i = check_end_bar_i (now_mom, bar_i);
+
+  Rational remain_mom = end_mom - Rational (end_bar_i - 1) * bar_mom;
+  if (remain_mom > Rational (0))
+    {
+      output_lilypond_rest_remain (lilypond_stream_r, remain_mom);
+      now_mom += remain_mom;
+    }
+  assert (now_mom == end_mom);
+}
+
+void
+Lilypond_staff::output_lilypond_rest_remain (Lilypond_stream& lilypond_stream_r, Rational mom)
+{
+  if (Duration_convert::no_quantify_b_s)
+    {
+      Duration dur = Duration_convert::mom2_dur (mom);
+      lilypond_stream_r << "r" << dur.str () << " ";
+      //       assert (mom == dur.mom ());
+      assert (mom == dur.length ());
+      return;
+    }
+
+  Duration dur = Duration_convert::mom2standardised_dur (mom);
+  if (dur.type_i_>-10)
+    lilypond_stream_r << "r" << dur.str () << " ";
+}
+#endif
+
+
+void
+Lilypond_staff::process ()
+{
+  /*
+     group items into voices
+     */
+
+  assert (lilypond_score_l_g);
+  lilypond_key_l_ = lilypond_score_l_g->lilypond_key_l_;
+  lilypond_time_signature_l_ = lilypond_score_l_g->lilypond_time_signature_l_;
+  lilypond_tempo_l_ = lilypond_score_l_g->lilypond_tempo_l_;
+
+  Cons_list<Lilypond_item> items;
+  for (Cons<Lilypond_item>* i = lilypond_item_p_list_.head_; i; i = i->next_)
+    items.append (new Cons<Lilypond_item> (i->car_, 0));
+
+  while (items.size_i ())
+    eat_voice (items);
+}
diff --git a/midi2ly/lilypond-stream.cc b/midi2ly/lilypond-stream.cc
new file mode 100644 (file)
index 0000000..f7ee158
--- /dev/null
@@ -0,0 +1,192 @@
+//
+// lilypond-stream.cc
+//
+// source file of the LilyPond music typesetter
+//
+// (c)  1997--1998, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#include <assert.h>
+#include <time.h>
+#include <fstream.h>
+#include "midi2ly-global.hh"
+#include "lilypond-item.hh"
+#include "lilypond-stream.hh"
+#include "string-convert.hh"
+
+extern String filename_str_g;
+
+static int const INDENT_i = 8;
+
+Lilypond_stream::Lilypond_stream (String filename_str)
+{
+  filename_str_ = filename_str;
+  pending_indent_i_ = 0;
+  os_p_ = 0;
+  indent_i_ = 0;
+  comment_mode_b_ = false;
+  column_i_ = 0;
+  wrap_column_i_ = 68;
+  open();
+  header();
+}
+
+Lilypond_stream::~Lilypond_stream ()
+{
+  delete os_p_;
+  if  (indent_i_)
+    warning (_f ("lily indent level: %d", indent_i_));
+}
+
+Lilypond_stream&
+Lilypond_stream::operator << (char c)
+{
+  *this << to_str (c);
+  return *this;
+}
+
+Lilypond_stream&
+Lilypond_stream::operator << (String s)
+{
+  static String word_sep_str = "{} \t\n";
+  while  (s.length_i())
+    {
+      int i = s.index_any_i (word_sep_str) + 1;
+      if  (!i)
+       i = s.length_i();
+      String word = s.left_str (i);
+      s = s.cut_str (i, s.length_i());
+      output_wrapped (word);
+    }
+  return *this;
+}
+
+Lilypond_stream&
+Lilypond_stream::operator << (Lilypond_item& lilypond_item_r)
+{
+  lilypond_item_r.output (*this);
+  *os_p_ << flush;
+  return *this;
+}
+
+void
+Lilypond_stream::handle_pending_indent()
+{
+  *os_p_ << String_convert::char_str ('\t', pending_indent_i_);
+  column_i_ += pending_indent_i_ * INDENT_i;
+  pending_indent_i_ = 0;
+}
+
+void
+Lilypond_stream::header()
+{
+  /* Maybe better not to translate these? */
+  *os_p_ << _ ("% Creator: ");
+  if (no_timestamps_b_g)
+    *os_p_ << "GNU LilyPond\n"; 
+  else
+    *os_p_ << midi2ly_version_str() << '\n';
+  *os_p_ << _ ("% Automatically generated");
+  if (no_timestamps_b_g)
+    *os_p_ << ".\n";
+  else
+    {
+      *os_p_ << _ (", at ");
+      time_t t (time (0));
+      *os_p_ << ctime (&t) << "%\n";
+    }
+  *os_p_ << _ ("% from input file: ");
+  //  *os_p_ << midi_parser_l_g->filename_str_;
+  // ugh
+  *os_p_ << filename_str_g;
+  *os_p_ << "\n\n";
+  // ugh
+  *os_p_ << "\\version \"1.3.76\";\n";
+}
+
+void
+Lilypond_stream::open()
+{
+  os_p_ = new ofstream (filename_str_.ch_C ());
+  if  (!*os_p_)
+    error (_f ("can't open file: `%s'",  filename_str_));
+}
+
+void
+Lilypond_stream::output (String str)
+{
+  for  (int i = 0; i < str.length_i(); i++)
+    {
+      char c = str[ i ];
+      switch  (c)
+       {
+       case '{' :
+       case '<' :
+         handle_pending_indent();
+         if  (column_i_ == indent_i_ * INDENT_i)
+           output ("\t");
+         indent_i_++;
+         *os_p_ << c;
+         column_i_++;
+         break;
+       case '}' :
+       case '>' :
+         assert (indent_i_);
+         indent_i_--;
+         if  (pending_indent_i_)
+           pending_indent_i_--;
+         handle_pending_indent();
+         *os_p_ << c;
+         column_i_++;
+         break;
+       case '%' :
+         handle_pending_indent();
+         comment_mode_b_ = true;
+         *os_p_ << c;
+         column_i_++;
+         break;
+       case '\t' :
+         handle_pending_indent();
+         *os_p_ << c;
+         column_i_ += INDENT_i;
+         break;
+       case '\n' :
+         *os_p_ << endl;
+         pending_indent_i_ = indent_i_;
+         column_i_ = 0;
+         comment_mode_b_ = false;
+         break;
+       default :
+         handle_pending_indent();
+         *os_p_ << c;
+         column_i_++;
+         break;
+       }
+    }
+}
+
+void
+Lilypond_stream::output_wrapped (String str)
+{
+  // enough room left -> doit
+  if  (column_i_ + str.length_i() <= wrap_column_i_)
+    {
+      output (str);
+      return;
+    }
+
+  // we're at BOL already; this will never fit -> doit
+  if  (column_i_ == indent_i_ * INDENT_i)
+    {
+      output (str);
+      return;
+    }
+
+  // ok, let's wrap
+  // preserve comment mode
+  if  (comment_mode_b_)
+    output (String ("\n%"));
+  else
+    output (String ("\n"));
+
+  output (str);
+}
diff --git a/midi2ly/lilypond-voice.cc b/midi2ly/lilypond-voice.cc
new file mode 100644 (file)
index 0000000..9595b93
--- /dev/null
@@ -0,0 +1,105 @@
+//
+// lilypond-voice.cc -- implement Lilypond_voice
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#include "string-convert.hh"
+#include "midi2ly-global.hh"
+#include "lilypond-column.hh"
+#include "lilypond-item.hh"
+#include "lilypond-staff.hh"
+#include "lilypond-stream.hh"
+#include "lilypond-voice.hh"
+#include "lilypond-score.hh"
+
+extern Lilypond_score* lilypond_score_l_g;
+
+Lilypond_voice::Lilypond_voice (Lilypond_staff* lilypond_staff_l)
+{
+  lilypond_staff_l_ = lilypond_staff_l;
+  last_item_l_ =0;
+  last_note_l_ =0;
+}
+
+void
+Lilypond_voice::add_item (Lilypond_item* lilypond_item_l)
+{
+  last_item_l_  = lilypond_item_l;
+  if (Lilypond_note* n = dynamic_cast<Lilypond_note*> (lilypond_item_l))
+    {
+      last_note_l_  = n;
+    }
+  lilypond_item_l_list_.append (new Cons<Lilypond_item> (lilypond_item_l, 0));
+}
+
+/**
+   analyse pitches to determine clef.
+ */
+String
+Lilypond_voice::get_clef () const
+{
+  Lilypond_note * n =0;
+
+  for (Cons<Lilypond_item> *cp = lilypond_item_l_list_.head_; !n && cp; cp = cp->next_)
+    {
+      n = dynamic_cast<Lilypond_note*> (cp->car_);
+    }
+  
+  if (!n)
+    return "";
+
+  int p = n->pitch_i_;
+
+  if (p < 56)
+    return "\\clef \"bass\";\n";
+  else if (p > 67)
+    return "\\clef \"treble\";\n";
+  else
+    return "";
+}
+
+static int const FAIRLY_LONG_VOICE_i = 6;
+
+void
+Lilypond_voice::output (Lilypond_stream& lilypond_stream_r)
+{
+  lilypond_stream_r << "{ ";
+  if (lilypond_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i)
+    lilypond_stream_r << '\n';
+
+
+  lilypond_stream_r << get_clef () << '\n';
+  
+  int current_bar_i = 0;
+  Rational bar_mom = lilypond_staff_l_->lilypond_time_signature_l_->bar_mom ();
+
+  for (Cons<Lilypond_item>* i = lilypond_item_l_list_.head_; i; i = i->next_)
+    {
+      Rational at_mom = i->car_->lilypond_column_l_->at_mom ();
+      int bar_i = (int) (at_mom / bar_mom) + 1;
+      if (bar_i > current_bar_i) 
+       {
+         if (current_bar_i) 
+           {
+             if (at_mom == Rational (bar_i - 1) * bar_mom)
+               lilypond_stream_r << "|";
+             lilypond_stream_r << "\n% ";
+             lilypond_stream_r << String_convert::i2dec_str (bar_i, 0, ' ');
+             lilypond_stream_r << '\n';
+           }
+         LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush; 
+         current_bar_i = bar_i;
+       }
+
+      lilypond_stream_r << *i->car_;
+      if (Lilypond_key* k = dynamic_cast<Lilypond_key*> (i->car_))
+       lilypond_staff_l_->lilypond_key_l_ = lilypond_score_l_g->lilypond_key_l_ = k;
+    }
+
+  if (lilypond_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i)
+    lilypond_stream_r << '\n';
+
+  lilypond_stream_r << "} ";
+}
+
+
index 38ce2703a620da75e5d0bebdae520df641b3cb15..d48b8739f0dda517179ea8c3d983d9de942f5671 100644 (file)
@@ -16,8 +16,8 @@
 
 #include "midi2ly-global.hh"
 #include "midi-score-parser.hh"
-#include "mudela-item.hh"
-#include "mudela-score.hh"
+#include "lilypond-item.hh"
+#include "lilypond-score.hh"
 
 #if HAVE_GETTEXT
 #include <libintl.h>
@@ -28,7 +28,7 @@
 String filename_str_g;
 
 // ugh
-Mudela_score* mudela_score_l_g = 0;
+Lilypond_score* lilypond_score_l_g = 0;
 
 bool no_timestamps_b_g = false;
 bool no_rests_b_g = false;
@@ -113,7 +113,7 @@ usage()
 {
   cout << _f ("Usage: %s [OPTION]... [FILE]", "midi2ly");
   cout << '\n';
-  cout << _ ("Translate MIDI-file to mudela");
+  cout << _ ("Translate MIDI-file to lilypond");
   cout << '\n';
   cout << '\n';
   cout << _ ("Options:");
@@ -154,7 +154,7 @@ main (int argc_i, char* argv_sz_a[])
 #endif
 
   bool key_override_b = false;
-  Mudela_key key (0, 0);
+  Lilypond_key key (0, 0);
 
  
   Getopt_long getopt_long (argc_i, argv_sz_a, long_option_init_a);
@@ -254,15 +254,15 @@ main (int argc_i, char* argv_sz_a[])
       show_settings ();
       filename_str_g = arg_sz;
       Midi_score_parser midi_parser;
-      Mudela_score* score_p = midi_parser.parse (arg_sz, &source);
+      Lilypond_score* score_p = midi_parser.parse (arg_sz, &source);
 
       if (!score_p)
        return 1;
 
       // if given on command line: override
-      if (key_override_b || !score_p->mudela_key_l_)
-       score_p->mudela_key_l_ = &key;
-      mudela_score_l_g = score_p;
+      if (key_override_b || !score_p->lilypond_key_l_)
+       score_p->lilypond_key_l_ = &key;
+      lilypond_score_l_g = score_p;
       score_p->process();
 
       if (!output_str.length_i ())
index e80e85740b70014230d97fc708de4b1e7e8302d5..a09f28fce491afe2c8f579d7ae074a4b64df17b2 100644 (file)
@@ -12,8 +12,8 @@
 #include "midi2ly-global.hh"
 #include "midi-score-parser.hh"
 #include "midi-track-parser.hh"
-#include "mudela-item.hh"
-#include "mudela-score.hh"
+#include "lilypond-item.hh"
+#include "lilypond-score.hh"
 
 
 void
@@ -26,7 +26,7 @@ Midi_score_parser::open (String filename_str, Sources* sources_l)
   info_l_->end_byte_L_ = info_l_->byte_L_ + info_l_->source_l_->length_i () + 1;
 }
 
-Mudela_score*
+Lilypond_score*
 Midi_score_parser::parse (String filename_str, Sources* sources_l)
 {
   Midi_parser_info info;
@@ -77,14 +77,14 @@ Midi_score_parser::find_earliest_i (Link_array<Midi_track_parser>& tracks)
   return earliest_i;
 }
 
-Mudela_score*
+Lilypond_score*
 Midi_score_parser::parse_score ()
 {
   int current_bar_i = 0;
-  Mudela_time_signature m4 (4, 2, 24, 8);
+  Lilypond_time_signature m4 (4, 2, 24, 8);
   Rational bar4_mom = m4.bar_mom ();
 
-  Mudela_score* score_p = new Mudela_score( 1, 1, 1 );
+  Lilypond_score* score_p = new Lilypond_score( 1, 1, 1 );
   info_l_->score_l_ = score_p;
 
   Link_array<Midi_track_parser> tracks;
@@ -97,8 +97,8 @@ Midi_score_parser::parse_score ()
     {
       int i = find_earliest_i (tracks);
       Rational at_mom = tracks [i]->at_mom ();
-      Mudela_column* column_l = score_p->get_column_l (at_mom);
-      Mudela_staff* staff_p = tracks [i]->parse (column_l);
+      Lilypond_column* column_l = score_p->get_column_l (at_mom);
+      Lilypond_staff* staff_p = tracks [i]->parse (column_l);
       if ( staff_p )
        {
          score_p->add_staff (staff_p);
index 69c7ed080e1bf7ecb145110c7fe5acc8281d6532..3b62ffc106ba0a3e5d5467a9c398dc297d4f47d6 100644 (file)
 #include "string-convert.hh"
 #include "midi2ly-global.hh"
 #include "midi-track-parser.hh"
-#include "mudela-column.hh"
-#include "mudela-item.hh"
-#include "mudela-score.hh"
-#include "mudela-staff.hh"
+#include "lilypond-column.hh"
+#include "lilypond-item.hh"
+#include "lilypond-score.hh"
+#include "lilypond-staff.hh"
 
 Midi_track_parser::Midi_track_parser (Midi_parser_info* info_l, int i)
 {
   info_l_ = info_l;
   at_mom_ = 0;
   track_info_p_ = 0;
-  mudela_staff_p_ = new Mudela_staff (i, "", "", "");
+  lilypond_staff_p_ = new Lilypond_staff (i, "", "", "");
   parse_header ();
   parse_delta_time ();
 }
 
 Midi_track_parser::~Midi_track_parser ()
 {
-  delete mudela_staff_p_;
+  delete lilypond_staff_p_;
   delete track_info_p_;
 }
 
@@ -46,16 +46,16 @@ Midi_track_parser::eot ()
 }
 
 void
-Midi_track_parser::note_end (Mudela_column* col_l, int channel_i, int pitch_i, int aftertouch_i )
+Midi_track_parser::note_end (Lilypond_column* col_l, int channel_i, int pitch_i, int aftertouch_i )
 {
   // junk dynamics
   (void)aftertouch_i;
 
   assert (col_l);
 
-  for (Cons<Mudela_note>** pp = &open_note_l_list_.head_; *pp;)
+  for (Cons<Lilypond_note>** pp = &open_note_l_list_.head_; *pp;)
     {
-      Cons<Mudela_note>* i = *pp;
+      Cons<Lilypond_note>* i = *pp;
       if ((i->car_->pitch_i_ == pitch_i) && (i->car_->channel_i_ == channel_i))
        {
          i->car_->end_column_l_ = col_l;
@@ -70,11 +70,11 @@ Midi_track_parser::note_end (Mudela_column* col_l, int channel_i, int pitch_i, i
 }
 
 void
-Midi_track_parser::note_end_all (Mudela_column* col_l)
+Midi_track_parser::note_end_all (Lilypond_column* col_l)
 {
   // find
   assert (col_l);
-  for (Cons<Mudela_note>* i = open_note_l_list_.head_; i; i = i->next_)
+  for (Cons<Lilypond_note>* i = open_note_l_list_.head_; i; i = i->next_)
     {
       i->car_->end_column_l_ = col_l;
     }
@@ -82,15 +82,15 @@ Midi_track_parser::note_end_all (Mudela_column* col_l)
   open_note_l_list_.init ();
 }
 
-Mudela_staff*
-Midi_track_parser::parse (Mudela_column* col_l)
+Lilypond_staff*
+Midi_track_parser::parse (Lilypond_column* col_l)
 {
   Rational mom = at_mom ();
   while (!eot () && (mom == at_mom ()))
     {
-      Mudela_item* p = parse_event (col_l);
+      Lilypond_item* p = parse_event (col_l);
       if (p)
-       mudela_staff_p_->add_item (p);
+       lilypond_staff_p_->add_item (p);
     }
 
   if (!eot())
@@ -99,8 +99,8 @@ Midi_track_parser::parse (Mudela_column* col_l)
   // catch-all
   note_end_all (col_l);
 
-  Mudela_staff* p = mudela_staff_p_;
-  mudela_staff_p_ = 0;
+  Lilypond_staff* p = lilypond_staff_p_;
+  lilypond_staff_p_ = 0;
   return p;
 }
 
@@ -113,8 +113,8 @@ Midi_track_parser::parse_delta_time ()
   at_mom_ += Rational (delta_i, info_l_->division_1_i_);
 }
 
-Mudela_item*
-Midi_track_parser::parse_event (Mudela_column* col_l)
+Lilypond_item*
+Midi_track_parser::parse_event (Lilypond_column* col_l)
 {
   Byte byte = peek_byte ();
   // RUNNING_STATUS    [\x00-\x5f]
@@ -131,7 +131,7 @@ Midi_track_parser::parse_event (Mudela_column* col_l)
   else
     byte = next_byte ();
 
-  Mudela_item* item_p = 0;
+  Lilypond_item* item_p = 0;
   // DATA_ENTRY        [\x60-\x79]
   if ((byte >= 0x60) && (byte <= 0x79))
     {
@@ -166,9 +166,9 @@ Midi_track_parser::parse_event (Mudela_column* col_l)
       */
       if (dyn_i)
        {
-         Mudela_note* p = new Mudela_note (col_l, channel_i, pitch_i, dyn_i);
+         Lilypond_note* p = new Lilypond_note (col_l, channel_i, pitch_i, dyn_i);
          item_p = p;
-         open_note_l_list_.append (new Cons<Mudela_note> (p, 0));
+         open_note_l_list_.append (new Cons<Lilypond_note> (p, 0));
        }
       else
        {
@@ -245,15 +245,15 @@ Midi_track_parser::parse_event (Mudela_column* col_l)
          int length_i = get_var_i ();
          String str = get_str (length_i);
          // LOGOUT (DEBUG_ver) << str << endl;
-         Mudela_text::Type t = (Mudela_text::Type)byte;
-         Mudela_text* p = new Mudela_text (t, str);
+         Lilypond_text::Type t = (Lilypond_text::Type)byte;
+         Lilypond_text* p = new Lilypond_text (t, str);
          item_p = p;
-         if (t == Mudela_text::COPYRIGHT)
-           mudela_staff_p_->copyright_str_ = p->text_str_;
-         else if (t == Mudela_text::TRACK_NAME)
-           mudela_staff_p_->name_str_ = p->text_str_;
-         else if (t == Mudela_text::INSTRUMENT_NAME)
-           mudela_staff_p_->instrument_str_ = p->text_str_;
+         if (t == Lilypond_text::COPYRIGHT)
+           lilypond_staff_p_->copyright_str_ = p->text_str_;
+         else if (t == Lilypond_text::TRACK_NAME)
+           lilypond_staff_p_->name_str_ = p->text_str_;
+         else if (t == Lilypond_text::INSTRUMENT_NAME)
+           lilypond_staff_p_->instrument_str_ = p->text_str_;
        }
       // END_OF_TRACK  [\x2f][\x00]
       else
@@ -269,12 +269,12 @@ Midi_track_parser::parse_event (Mudela_column* col_l)
            {
              next_byte ();
              unsigned useconds_per_4_u = get_u (3);
-             // $$ = new Mudela_tempo ( ($2 << 16) + ($3 << 8) + $4);
+             // $$ = new Lilypond_tempo ( ($2 << 16) + ($3 << 8) + $4);
              // LOGOUT (DEBUG_ver) << $$->str() << endl;
-             Mudela_tempo* p = new Mudela_tempo ( useconds_per_4_u );
+             Lilypond_tempo* p = new Lilypond_tempo ( useconds_per_4_u );
              item_p = p;
-             info_l_->score_l_->mudela_tempo_l_ = p;
-             mudela_staff_p_->mudela_tempo_l_ = p;
+             info_l_->score_l_->lilypond_tempo_l_ = p;
+             lilypond_staff_p_->lilypond_tempo_l_ = p;
            }
          // SMPTE_OFFSET       [\x54][\x05]
          else if ((byte == 0x54) && (next == 0x05))
@@ -294,11 +294,11 @@ Midi_track_parser::parse_event (Mudela_column* col_l)
              int den_i = (int)next_byte ();
              int clocks_4_i = (int)next_byte ();
              int count_32_i = (int)next_byte ();
-             Mudela_time_signature* p = new Mudela_time_signature ( num_i, den_i, clocks_4_i, count_32_i );
+             Lilypond_time_signature* p = new Lilypond_time_signature ( num_i, den_i, clocks_4_i, count_32_i );
              item_p = p;
-             info_l_->score_l_->mudela_time_signature_l_ = p;
+             info_l_->score_l_->lilypond_time_signature_l_ = p;
              info_l_->bar_mom_ = p->bar_mom ();
-             mudela_staff_p_->mudela_time_signature_l_ = p;
+             lilypond_staff_p_->lilypond_time_signature_l_ = p;
            }
          // KEY                [\x59][\x02]
          else if ((byte == 0x59) && (next == 0x02))
@@ -306,11 +306,11 @@ Midi_track_parser::parse_event (Mudela_column* col_l)
              next_byte ();
              int accidentals_i = (int)(signed char)next_byte ();
              int minor_i = (int)(bool)next_byte ();
-             Mudela_key* p = new Mudela_key (accidentals_i, minor_i);
+             Lilypond_key* p = new Lilypond_key (accidentals_i, minor_i);
              item_p = p;
 #if 0
-             info_l_->score_l_->mudela_key_l_ = p;
-             mudela_staff_p_->mudela_key_l_ = p;
+             info_l_->score_l_->lilypond_key_l_ = p;
+             lilypond_staff_p_->lilypond_key_l_ = p;
 #endif
            }
          // SSME               [\0x7f][\x03]
@@ -319,7 +319,7 @@ Midi_track_parser::parse_event (Mudela_column* col_l)
              next_byte ();
              int length_i = get_var_i ();
              String str = get_str (length_i);
-             item_p = new Mudela_text ((Mudela_text::Type)byte, str);
+             item_p = new Lilypond_text ((Lilypond_text::Type)byte, str);
            }
          else
            {
@@ -333,7 +333,7 @@ Midi_track_parser::parse_event (Mudela_column* col_l)
     exit (_ ("invalid MIDI event"));
 
   if (item_p)
-    item_p->mudela_column_l_ = col_l;
+    item_p->lilypond_column_l_ = col_l;
 
   parse_delta_time ();
 
index e45e985c0efc4ef2ec1df91e2217f6a9fa8c4b03..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,24 +0,0 @@
-//
-// mudela-column.cc -- implement Mudela_column
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include "mudela-column.hh"
-
-Mudela_column::Mudela_column (Mudela_score* mudela_score_l, Rational mom)
-{
-  mudela_score_l_ = mudela_score_l;
-  at_mom_ = mom;
-}
-
-void 
-Mudela_column::add_item (Mudela_item* mudela_item_l)
-{
-   mudela_item_l_list_.append (new Cons<Mudela_item> (mudela_item_l, 0));
-}
-
-Rational
-Mudela_column::at_mom()
-{
-  return at_mom_;
-}
index 1415acd93375273708eb1d6e891b27d6420a231b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,364 +0,0 @@
-//
-// mudela-item.cc -- implement Mudela_item
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include <string.h>
-#include <assert.h>
-#include "midi2ly-global.hh"
-#include "string-convert.hh"
-#include "duration-convert.hh"
-#include "mudela-column.hh"
-#include "mudela-item.hh"
-#include "mudela-stream.hh"
-#include "mudela-score.hh"
-
-Mudela_item::Mudela_item (Mudela_column* mudela_column_l)
-{
-  mudela_column_l_ = mudela_column_l;
-}
-
-Mudela_item::~Mudela_item ()
-{
-}
-
-Rational
-Mudela_item::at_mom ()
-{
-  return mudela_column_l_->at_mom ();
-}
-
-Rational
-Mudela_item::duration_mom ()
-{
-  return Rational (0);
-}
-
-void
-Mudela_item::output (Mudela_stream& mudela_stream_r)
-{
-  mudela_stream_r << str () << " ";
-}
-
-Mudela_key::Mudela_key (int accidentals_i, int minor_i)
-  : Mudela_item (0)
-{
-  accidentals_i_ = accidentals_i;
-  minor_i_ = minor_i;
-}
-
-char const *accname[] = {"eses", "es", "", "is" , "isis"};
-
-String
-Mudela_key::str ()
-{
-  int key_i = accidentals_i_ >= 0
-    ? ((accidentals_i_ % 7) ["cgdaebf"] - 'a' - 2 -2 * minor_i_ + 7) % 7
-    : ((-accidentals_i_ % 7) ["cfbeadg"] - 'a' - 2 -2 * minor_i_ + 7) % 7;
-  
-  String notename_str = !minor_i_
-    ? to_str ((char) ((key_i + 2) % 7 + 'a'))
-    : to_str ((char) ((key_i + 2) % 7 + 'a'));
-
-  // fis cis gis dis ais eis bis
-  static int sharps_i_a [7] = { 2, 4, 6, 1, 3, 5, 7 };
-  // bes es as des ges ces fes
-  static int flats_i_a [7] = { 6, 4, 2, 7, 5, 3, 1 };
-  int accidentals_i = accidentals_i_ >= 0
-                             ? sharps_i_a [key_i] <= accidentals_i_ ? 1 : 0
-                             : flats_i_a [key_i] <= -accidentals_i_ ? -1 : 0;
-                              
-  if (accidentals_i)
-    notename_str += String (accname [accidentals_i + 2]);
-
-  return "\\key " + notename_str  + (minor_i_ ? "\\minor" : "\\major") + ";\n";
-}
-
-String
-Mudela_key::notename_str (int pitch_i)
-{
-  // this may seem very smart,
-  // but it-s only an excuse not to read a notename table
-
-  // major scale: do-do
-  // minor scale: la-la  (= + 5)
-  static int notename_i_a [12] = { 0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6 };
-  int notename_i = notename_i_a [pitch_i % 12];
-
-  static int accidentals_i_a [12] = { 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 };
-  int accidental_i = accidentals_i_a [(minor_i_ * 5 + pitch_i) % 12];
-  if (accidental_i &&  (accidentals_i_ < 0))
-    {
-      accidental_i *= -1;
-      notename_i =  (notename_i + 1) % 7;
-    }
-
-  String notename_str = to_str ((char)(((notename_i + 2) % 7) + 'a'));
-  if (accidental_i)
-    notename_str += String (accname [accidental_i + 2]);
-
-  /*
-    By tradition, all scales now consist of a sequence of 7 notes each
-    with a distinct name, from amongst a b c d e f g.  But, minor scales
-    have a wide second interval at the top - the 'leading note' is
-    sharped. (Why? it just works that way! Anything else doesn't sound as
-    good and isn't as flexible at saying things. In medieval times,
-    scales only had 6 notes to avoid this problem - the hexachords.)
-    
-    So, the d minor scale is d e f g a b-flat c-sharp d - using d-flat
-    for the leading note would skip the name c and duplicate the name d.
-    Why isn't c-sharp put in the key signature? Tradition. (It's also
-    supposedly based on the Pythagorean theory of the cycle of fifths,
-    but that really only applies to major scales...)
-    
-    Anyway, g minor is g a b-flat c d e-flat f-sharp g, and all the other
-    flat minor keys end up with a natural leading note. And there you
-    have it.
-    
-    John Sankey <bf250@freenet.carleton.ca>
-
-    Let's also do a-minor: a b c d e f gis a
-
-    --jcn
-
-   */
-
-  /* ok, bit ugly, but here we go -- jcn */
-
-
-  if (minor_i_)
-    {
-     if ((accidentals_i_ == 0) && (notename_str == "as"))
-       notename_str = "gis";
-     else if ((accidentals_i_ == -1) && (notename_str == "des"))
-       notename_str = "cis";
-     else if ((accidentals_i_ == -2) && (notename_str == "ges"))
-      notename_str = "fis";
-     else if ((accidentals_i_ == 5) && (notename_str == "g"))
-       notename_str = "fisis";
-     else if ((accidentals_i_ == 6) && (notename_str == "d"))
-      notename_str = "cisis";
-     else if ((accidentals_i_ == 7) && (notename_str == "a"))
-      notename_str = "gisis";
-
-     if ((accidentals_i_ <= -6) && (notename_str == "b"))
-      notename_str = "ces";
-     if ((accidentals_i_ <= -7) && (notename_str == "e"))
-      notename_str = "fes";
-    }
-             
-  String de_octavate_str = to_str (',',  (Mudela_note::c0_pitch_i_c_ + 11 - pitch_i) / 12);
-  String octavate_str = to_str ('\'',  (pitch_i - Mudela_note::c0_pitch_i_c_) / 12);
-  return notename_str +de_octavate_str  + octavate_str;
-}
-
-Mudela_time_signature::Mudela_time_signature (int num_i, int den_i, int clocks_4_i, int count_32_i)
-  : Mudela_item (0)
-{
-  sync_dur_.durlog_i_ = 3;
-  sync_f_ = 1.0;
-  if (count_32_i != 8)
-    warning (_f ("#32 in quarter: %d", count_32_i));
-  num_i_ = num_i;
-  den_i_ = den_i;
-  clocks_1_i_ = clocks_4_i * 4;
-}
-
-Rational
-Mudela_time_signature::bar_mom ()
-{
-  Duration d;
-  d.durlog_i_ = den_i_;
-  return Rational (num_i_) * Duration_convert::dur2_mom (d);
-}
-
-int
-Mudela_time_signature::clocks_1_i ()
-{
-  return clocks_1_i_;
-}
-
-int
-Mudela_time_signature::den_i ()
-{
-  return den_i_;
-}
-
-int
-Mudela_time_signature::num_i ()
-{
-  return num_i_;
-}
-
-String
-Mudela_time_signature::str ()
-{
-  String str = "\\time "
-    + to_str (num_i_) + "/" + to_str (1 << den_i_)
-    + ";\n";
-  return str;
-}
-
-
-// statics Mudela_note
-/*
-  this switch can be used to write simple plets like
-  c4*2/3
-  as
-  \plet 2/3; c4 \plet 1/1;
- */
-/*
-  UGH: .hh says false, .cc says true.
-  FIXME.
- */
-bool const Mudela_note::simple_plet_b_s;
-
-Mudela_note::Mudela_note (Mudela_column* mudela_column_l,
-                         int channel_i, int pitch_i, int dyn_i)
-  : Mudela_item (mudela_column_l)
-{
-  // junk dynamics
-  (void)dyn_i;
-  channel_i_ = channel_i;
-  pitch_i_ = pitch_i;
-  end_column_l_ = 0;
-}
-
-Duration
-Mudela_note::duration ()
-{
-  assert (end_column_l_);
-  Rational mom = end_column_l_->at_mom () - at_mom ();
-  return Duration_convert::mom2_dur (mom);
-}
-
-Rational
-Mudela_note::duration_mom ()
-{
-  assert (end_column_l_);
-  return end_column_l_->at_mom () - at_mom ();
-}
-
-String
-Mudela_note::str ()
-{
-  Duration dur = duration ();
-  if (dur.durlog_i_ < -10)
-    return "";
-
-  String name_str
-    = mudela_column_l_->mudela_score_l_->mudela_key_l_->notename_str (pitch_i_);
-
-  if (simple_plet_b_s)
-    return name_str + Duration_convert::dur2_str (dur) + " ";
-
-  String str;
-
-  //ugh
-  if (dur.plet_b ())
-    str += String ("\\times ")
-      + String_convert::i2dec_str (dur.plet_.iso_i_, 0, 0)
-      + "/"
-      + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0)
-      + " { ";
-  
-
-  str += name_str;
-
-  Duration tmp = dur;
-  tmp.set_plet (1,1);
-  str += Duration_convert::dur2_str (tmp);
-
-  if (dur.plet_b ())
-    str += String (" }");
-
-  /* 
-     note of zero duration is nonsense, 
-     but let's output anyway for convenient debugging
-  */
-  if (!duration_mom ())
-    return String ("\n% ") + str + "\n";
-
-  return str + " ";
-}
-
-Mudela_skip::Mudela_skip (Mudela_column* mudela_column_l, Rational skip_mom)
-  : Mudela_item (mudela_column_l)
-{
-  mom_ = skip_mom;
-}
-
-Duration
-Mudela_skip::duration ()
-{
-  return Duration_convert::mom2_dur (mom_);
-}
-
-Rational
-Mudela_skip::duration_mom ()
-{
-  return Duration_convert::dur2_mom (duration ());
-}
-
-String
-Mudela_skip::str ()
-{
-  if (!mom_)
-    return String ("");
-
-  Duration dur = duration ();
-  if (dur.durlog_i_<-10)
-    return "";
-
-  String str = "\\skip ";
-  str += Duration_convert::dur2_str (dur) + "; ";
-
-  return str;
-}
-
-Mudela_tempo::Mudela_tempo (int useconds_per_4_i)
-  : Mudela_item (0)
-{
-  useconds_per_4_i_ = useconds_per_4_i;
-  seconds_per_1_mom_ = Rational(useconds_per_4_i_ *4, 1e6);
-}
-
-String
-Mudela_tempo::str ()
-{
-  String str = "\\tempo 4=";
-  str += to_str (get_tempo_i (Rational (1, 4)));
-  str += ";\n";
-  return str;
-}
-
-int
-Mudela_tempo::useconds_per_4_i ()
-{
-  return useconds_per_4_i_;
-}
-
-int
-Mudela_tempo::get_tempo_i (Rational rational)
-{
-  Rational m1 = Rational (60) / rational;
-  Rational m2 = seconds_per_1_mom_;
-  return m1 / m2;
-}
-
-Mudela_text::Mudela_text (Mudela_text::Type type, String text_str)
-  : Mudela_item (0)
-{
-  type_ = type;
-  text_str_ = text_str;
-}
-
-String
-Mudela_text::str ()
-{
-  if (!text_str_.length_i ()
-      ||  (text_str_.length_i () != (int)strlen (text_str_.ch_C ())))
-    return "";
-
-  return "% " + text_str_ + "\n";
-}
index 05d570f4fd276216d77c0aae389f1904a24bb68c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,256 +0,0 @@
-//
-// mudela-score.cc -- implement Mudela_score
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include <assert.h>
-#include "rational.hh"
-#include "duration.hh"
-#include "duration-convert.hh"
-#include "midi2ly-global.hh"
-#include "mudela-column.hh"
-#include "mudela-item.hh"
-#include "mudela-score.hh"
-#include "mudela-staff.hh"
-#include "mudela-stream.hh"
-
-#include "killing-cons.tcc"
-
-//static Mudela_key key_c (0, 0);
-static Mudela_time_signature time_sig_4 (4, 2, 24, 8);
-// useconds per 4: 250000 === 60 4 per minute
-static Mudela_tempo tempo_60 (1000000);
-
-Mudela_score::Mudela_score (int format_i, int tracks_i, int tempo_i)
-{
-  last_staff_l_ =0;
-  format_i_ = format_i;
-  tracks_i_ = tracks_i;
-  tempo_i_ = tempo_i;
-  column_l_array_.push (new Mudela_column (this, Rational (0)));
-  //  mudela_key_l_ = &key_c;
-  mudela_key_l_ = 0;
-  mudela_time_signature_l_ = &time_sig_4;
-  mudela_tempo_l_ = &tempo_60;
-}
-
-Mudela_score::~Mudela_score ()
-{
-}
-
-void
-Mudela_score::add_item (Mudela_item* mudela_item_p)
-{
-  last_staff_l_->add_item (mudela_item_p);
-}
-
-void
-Mudela_score::add_staff (Mudela_staff* mudela_staff_p)
-{
-  mudela_staff_p_list_.append (new Killing_cons<Mudela_staff> (mudela_staff_p, 0));
-  last_staff_l_ = mudela_staff_p;
-}
-
-Mudela_column*
-Mudela_score::find_column_l (Rational mom)
-{
-  int upper_i = max (0, column_l_array_.size () - 1);
-  int lower_i = 0;
-  int i = 0; //upper_i;
-  while (1)
-    {
-      Rational i_mom = column_l_array_ [i]->at_mom ();
-      if (i_mom == mom)
-       return column_l_array_ [i];
-      if (mom < i_mom)
-       upper_i = i;
-      else
-       lower_i = i;
-      if ( (upper_i == lower_i) || (i == column_l_array_.size () - 1))
-       {
-         // we don't do inserts
-         assert (0);
-         Mudela_column* col_p = new Mudela_column (this, mom);
-         column_l_array_.push (col_p);
-         return col_p;
-        }
-      i = (upper_i + lower_i + 1 ) / 2;
-    }
-  assert (0);
-  return 0;
-}
-
-Mudela_column*
-Mudela_score::get_column_l (Rational mom)
-{
-  int i;
-  Mudela_column *c=0;
-  for (i=column_l_array_.size () - 1; !c && i >=0; i--)
-    {
-      if (column_l_array_ [i]->at_mom () == mom )
-       c = column_l_array_[i];
-      else if (column_l_array_[i]->at_mom () < mom)
-       break;
-    }
-  if (!c)
-    {
-      c = new Mudela_column (this, mom);
-      column_l_array_.insert (c, i+1);
-    }
-
-  assert (c->at_mom () == mom);
-  return c;
-}
-
-void
-Mudela_score::output (String filename_str)
-{
-  LOGOUT (NORMAL_ver) << _f ("Lily output to %s...", filename_str) << endl;
-  
-  // ugh, ugly midi type 1 fix
-  if ( (mudela_staff_p_list_.size_i () == 1)
-       && !mudela_staff_p_list_.head_->car_->number_i_)
-    mudela_staff_p_list_.head_->car_->number_i_ = 1;
-  
-  int track_i = 0;
-  Mudela_stream mudela_stream (filename_str);
-  for (Cons<Mudela_staff>* i = mudela_staff_p_list_.head_; i; i = i->next_)
-    {
-      LOGOUT (NORMAL_ver) << _f ("track %d:", track_i++) << flush;
-      i->car_->output (mudela_stream);
-      mudela_stream << '\n';
-      LOGOUT (NORMAL_ver) << endl;
-    }
-  
-  mudela_stream << "\\score{\n";
-  if (mudela_staff_p_list_.size_i () > 1)
-    mudela_stream << "< \n";
-  for (Cons<Mudela_staff>* i = mudela_staff_p_list_.head_; i; i = i->next_)
-    {
-      if ( (mudela_staff_p_list_.size_i () != 1)
-          && (i->car_ == mudela_staff_p_list_.head_->car_))
-       continue;
-      mudela_stream << "\\context Staff = \"" << i->car_->id_str () << "\" ";
-      mudela_stream << String ("\\" +  i->car_->id_str ()) << '\n';
-    }
-  if (mudela_staff_p_list_.size_i () > 1)
-    mudela_stream << ">\n";
-  
-  mudela_stream << "\\paper{}\n";
-  
-#if 1
-  mudela_stream << "\\midi{\n";
-  
-  // let's not use silly 0 track
-  last_cons (mudela_staff_p_list_.head_)->car_->mudela_tempo_l_->output (mudela_stream);
-  mudela_stream << "}\n";
-#endif
-  
-  mudela_stream << "}\n";
-}
-  
-void
-Mudela_score::process ()
-{
-  LOGOUT (NORMAL_ver) << '\n' << _ ("Processing...") << endl;
-  
-  LOGOUT (DEBUG_ver) << "columns\n";
-  
-  settle_columns ();
-  filter_tempo ();
-  quantify_columns ();
-  quantify_durations ();
-  
-  LOGOUT (NORMAL_ver) << '\n' << _ ("Creating voices...") << endl;
-  int track_i = 0;
-  for (Cons<Mudela_staff>* i = mudela_staff_p_list_.head_; i; i = i->next_)
-    {
-      LOGOUT (NORMAL_ver) << _ ("track ") << track_i++ << ": " << flush;
-      i->car_->process ();
-      LOGOUT (NORMAL_ver) << endl;
-    }
-}
-  
-void
-Mudela_score::filter_tempo ()
-{
-  LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Filtering tempo...") << endl;
-}
-  
-void
-Mudela_score::quantify_columns ()
-{
-  // ugh
-  if (Duration_convert::no_quantify_b_s)
-    {
-      LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Quantifying columns...") << endl;
-      return;
-    }
-  
-  LOGOUT (NORMAL_ver) << '\n' << _ ("Quantifying columns...") << endl;
-  
-  int current_bar_i = 0;
-  Rational bar_mom = mudela_time_signature_l_->bar_mom ();
-  
-  int n = 5 >? Duration_convert::no_smaller_than_i_s;
-  n = Duration_convert::type2_i (n);
-  Rational s = Rational (1, n);
-  for (int i = 0; i < column_l_array_.size (); i++)
-    {
-      column_l_array_ [i]->at_mom_ =
-       s * Rational ( (int) ( (column_l_array_ [i]->at_mom ()) / s));
-  
-      int bar_i = (int) (column_l_array_ [i]->at_mom () / bar_mom) + 1;
-      if (bar_i > current_bar_i)
-
-       {
-         LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush;
-         current_bar_i = bar_i;
-       }
-    }
-  LOGOUT (NORMAL_ver) << endl;
-}
-  
-void
-Mudela_score::quantify_durations ()
-{
-  
-}
-  
-void
-Mudela_score::settle_columns ()
-{
-  LOGOUT (NORMAL_ver) << '\n' << _ ("Settling columns...") << endl;
-  
-  int n = column_l_array_.size ();
-  
-  int start_i = 0;
-  int end_i = 0;
-  Rational start_mom = 0;
-
-  Duration smallest_dur;
-  smallest_dur.durlog_i_ =  6;
-  Rational const noise_mom = Duration_convert::dur2_mom (smallest_dur)
-    / Rational (2);
-  for (int i = 0; i < n; i++)
-    {
-      if (!start_i)
-       {
-         start_i = end_i = i;
-         start_mom = column_l_array_ [i]->at_mom ();
-         continue;
-       }
-
-      // find all columns within noise's distance
-      while ( (i < n)
-             && (column_l_array_ [i]->at_mom () - start_mom < noise_mom))
-       end_i = ++i;
-
-      // bluntly set all to time of first in group
-      for (int j = start_i; j < end_i; j++)
-       column_l_array_ [j]->at_mom_ = start_mom;
-
-      start_i = end_i = 0;
-    }
-}
-
index 284cc5ef0f684d2f1d0b45320034aad3d2a37c19..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,339 +0,0 @@
-//
-// mudela-staff.cc -- implement Mudela_staff
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include <assert.h>
-#include <ctype.h>
-#include "rational.hh"
-#include "duration-convert.hh"
-#include "string-convert.hh"
-#include "midi2ly-proto.hh"
-#include "midi2ly-global.hh"
-#include "mudela-column.hh"
-#include "mudela-item.hh"
-#include "mudela-staff.hh"
-#include "mudela-stream.hh"
-#include "mudela-voice.hh"
-#include "mudela-score.hh"
-
-#include "killing-cons.tcc"
-
-extern Mudela_score* mudela_score_l_g;
-
-Mudela_staff::Mudela_staff (int number_i, String copyright_str, String track_name_str, String instrument_str)
-{
-  number_i_ = number_i;
-  copyright_str_ = copyright_str;
-  instrument_str_ = instrument_str;
-  name_str_ = track_name_str;
-  mudela_key_l_ = 0;
-  mudela_time_signature_l_ = 0;
-  mudela_tempo_l_ = 0;
-}
-
-void
-Mudela_staff::add_item (Mudela_item* mudela_item_p)
-{
-  mudela_item_p_list_.append (new Killing_cons <Mudela_item> (mudela_item_p, 0));
-  if (mudela_item_p->mudela_column_l_)
-    mudela_item_p->mudela_column_l_->add_item (mudela_item_p);
-}
-/**
-   Walk ITEMS and find voices.  Remove categorised items.
-
-   TODO: 
-   
-     * collect all channels into separate voices. Use chords for sim
-       notes on same channel.
-     * assume voices/assume chords modes.
-   
- */
-void
-Mudela_staff::eat_voice (Cons_list<Mudela_item>& items)
-{
-  Mudela_voice* voice_p = new Mudela_voice (this);
-  mudela_voice_p_list_.append (new Killing_cons<Mudela_voice> (voice_p, 0));
-
-  //    Rational mom = items.top ()->at_mom ();
-  Rational mom = 0;
-
-  for (Cons<Mudela_item>** pp = &items.head_; *pp;)
-    {
-      Cons<Mudela_item>* i = *pp;
-      if (i->car_->at_mom () > mom)
-       {
-         if (no_rests_b_g && voice_p->last_note_l_)
-           {
-             voice_p->last_note_l_->end_column_l_ = i->car_->mudela_column_l_;
-           }
-         else
-           {
-             /* uh, what about quantisation?  This should probably
-                use  mom2standardised_dur ()
-                arg, urg: skip should get duration from start/end columns!
-               */
-
-             Rational r = i->car_->at_mom () - mom;
-             // ugh, need score
-             Mudela_column* start = mudela_score_l_g->find_column_l (mom);
-             voice_p->add_item (new Mudela_skip (start, r));
-           }
-
-         mom = i->car_->at_mom ();
-         continue;             // unnecessary
-       }
-      
-      Link_array<Mudela_item> now_items;
-      for (Cons<Mudela_item> *cp = i; cp && cp->car_->at_mom () == mom; cp = cp->next_)
-       now_items.push (i->car_);
-
-#if 0
-      /*
-        Why don't we use <note>, if voice has:
-
-         <note> <key-change>
-
-        we'd get last_item == key_change -> last_note == 0;
-       */
-      Mudela_note * last_note = dynamic_cast<Mudela_note*> (voice_p->last_item_l_);
-#else
-      /*
-        Not sure, is this better?
-       */
-      Mudela_note * last_note = voice_p->last_note_l_;
-#endif
-
-      Link_array<Mudela_item> candidates; 
-
-      for (int i=0; last_note && i < now_items.size (); i++)
-       {
-         Mudela_note * now_note = dynamic_cast<Mudela_note*> (now_items[i]);
-         if (now_note && last_note->channel_i_ != now_note->channel_i_)
-           candidates.push (now_note);
-       }
-
-      if (candidates.size())
-       {
-         now_items = candidates;
-       }
-
-      Mudela_item * which = 0;
-      if (now_items.size () > 1)
-       {
-         int mindiff = 100000; // ugh
-         for (int i=0; last_note && i < now_items.size (); i++)
-           {
-             Mudela_note *nt = dynamic_cast<Mudela_note*> (now_items[i]);
-             if (!nt)
-               continue;
-             int diff = abs (last_note->pitch_i_ - nt->pitch_i_ );
-             if(diff < mindiff)
-               {
-                 mindiff =  diff;
-                 which = now_items [i];
-               }
-           }
-
-         if (which && mindiff > 18)            // more than 1.5 octaves apart.  Don't put in same voice.
-           {
-             which =0;
-           }
-       }
-      else if (now_items.size () == 1)
-       which = now_items[0];
-      
-      if (which)
-       {
-         while ((*pp)->car_ != which)
-           pp = &(*pp)->next_;
-      
-         mom += (*pp)->car_->duration_mom ();
-         Cons<Mudela_item>* c = items.remove_cons (pp);
-         voice_p->add_item (c->car_);
-         delete c;
-       }
-      else 
-       {
-         pp = &(*pp)->next_;
-         continue;
-       }
-    }
-}
-
-String
-Mudela_staff::id_str ()
-{
-  String id (name_str ());
-  char *cp = id.ch_l ();
-  char *end = cp + id.length_i ();
-  for (;cp < end; cp++)
-    {
-      if (!isalpha (*cp))
-       {
-         *cp = 'X';
-       }
-    }
-  return id;
-}
-
-String
-Mudela_staff::name_str ()
-{
-  if (name_str_.length_i ())
-    return name_str_;
-  return String ("track") + to_str (char ('A' - 1 + number_i_));
-}
-
-
-
-void
-Mudela_staff::output (Mudela_stream& mudela_stream_r)
-{
-  int c =0;
-  
-  String trackbody = "";
-  for (Cons<Mudela_voice>* i = mudela_voice_p_list_.head_; i; i = i->next_)
-    {
-      String voicename = id_str () + "voice" + to_str (char (c + 'A'));
-      
-      mudela_stream_r << voicename << " = \\notes ";
-
-      trackbody += "\\"  + voicename + "\n";
-
-      mudela_stream_r << '\n';
-      i->car_->output (mudela_stream_r);
-      c++;      
-    }
-
-  mudela_stream_r << _ ("% MIDI copyright:") << copyright_str_ << '\n';
-  mudela_stream_r << _ ("% MIDI instrument:") << instrument_str_ << '\n';
-  mudela_stream_r << id_str () << " = ";
-  mudela_stream_r << "<\n " << trackbody << " >\n";
-
-  mudela_stream_r << " % " << name_str () << '\n';
-}
-
-void
-Mudela_staff::output_mudela_begin_bar (Mudela_stream& mudela_stream_r, Rational now_mom, int bar_i)
-{
-  Rational bar_mom = mudela_time_signature_l_->bar_mom ();
-  Rational into_bar_mom = now_mom - Rational (bar_i - 1) * bar_mom;
-  if (bar_i > 1)
-    {
-      if (!into_bar_mom)
-       mudela_stream_r << "|\n";
-    }
-  mudela_stream_r << "% " << String_convert::i2dec_str (bar_i, 0, ' ');
-  if (into_bar_mom)
-    mudela_stream_r << ":" << Duration_convert::dur2_str (Duration_convert::mom2_dur (into_bar_mom));
-  mudela_stream_r << '\n';
-}
-
-
-#if 0 // not used for now
-void
-Mudela_staff::output_mudela_rest (Mudela_stream& mudela_stream_r, Rational begin_mom, Rational end_mom)
-{
-  Rational bar_mom = mudela_time_signature_l_->bar_mom ();
-  Rational now_mom = begin_mom;
-
-  int begin_bar_i = (int) (now_mom / bar_mom) + 1;
-  int end_bar_i = (int) (end_mom / bar_mom) + 1;
-
-  if (end_bar_i == begin_bar_i)
-    {
-      output_mudela_rest_remain (mudela_stream_r, end_mom - begin_mom);
-      return;
-    }
-
-  // multiple bars involved
-  int bar_i = (int) (now_mom / bar_mom) + 1;
-
-  //fill current bar
-  Rational begin_bar_mom = Rational (begin_bar_i - 1) * bar_mom;
-  if (now_mom > begin_bar_mom)
-    {
-      int next_bar_i = (int) (now_mom / bar_mom) + 2;
-      Rational next_bar_mom = Rational (next_bar_i - 1) * bar_mom;
-      assert (next_bar_mom <= end_mom);
-
-      Rational remain_mom = next_bar_mom - now_mom;
-      if (remain_mom > Rational (0))
-       {
-         output_mudela_rest_remain (mudela_stream_r, remain_mom);
-         now_mom += remain_mom;
-       }
-
-      bar_i = check_end_bar_i (now_mom, bar_i);
-    }
-
-  // fill whole bars
-  int count_i = end_bar_i - bar_i;
-  for (int i = 0; i < count_i; i++)
-    {
-      int begin_bar_i = check_begin_bar_i (now_mom, bar_i);
-      if (begin_bar_i)
-       output_mudela_begin_bar (mudela_stream_r, now_mom, begin_bar_i);
-      mudela_stream_r << "r1 ";
-      //       *mudela_stream_r.os_p_ << flush;
-      if (begin_bar_i)
-       LOGOUT (NORMAL_ver) << begin_bar_i << flush;
-      bar_i = check_end_bar_i (now_mom, bar_i);
-      now_mom += bar_mom;
-    }
-
-  // use "int i" here, and gcc 2.7.2 hits internal compiler error
-  int ii = check_begin_bar_i (now_mom, bar_i);
-  if (ii)
-    output_mudela_begin_bar (mudela_stream_r, now_mom, ii);
-
-  //    bar_i = check_end_bar_i (now_mom, bar_i);
-
-  Rational remain_mom = end_mom - Rational (end_bar_i - 1) * bar_mom;
-  if (remain_mom > Rational (0))
-    {
-      output_mudela_rest_remain (mudela_stream_r, remain_mom);
-      now_mom += remain_mom;
-    }
-  assert (now_mom == end_mom);
-}
-
-void
-Mudela_staff::output_mudela_rest_remain (Mudela_stream& mudela_stream_r, Rational mom)
-{
-  if (Duration_convert::no_quantify_b_s)
-    {
-      Duration dur = Duration_convert::mom2_dur (mom);
-      mudela_stream_r << "r" << dur.str () << " ";
-      //       assert (mom == dur.mom ());
-      assert (mom == dur.length ());
-      return;
-    }
-
-  Duration dur = Duration_convert::mom2standardised_dur (mom);
-  if (dur.type_i_>-10)
-    mudela_stream_r << "r" << dur.str () << " ";
-}
-#endif
-
-
-void
-Mudela_staff::process ()
-{
-  /*
-     group items into voices
-     */
-
-  assert (mudela_score_l_g);
-  mudela_key_l_ = mudela_score_l_g->mudela_key_l_;
-  mudela_time_signature_l_ = mudela_score_l_g->mudela_time_signature_l_;
-  mudela_tempo_l_ = mudela_score_l_g->mudela_tempo_l_;
-
-  Cons_list<Mudela_item> items;
-  for (Cons<Mudela_item>* i = mudela_item_p_list_.head_; i; i = i->next_)
-    items.append (new Cons<Mudela_item> (i->car_, 0));
-
-  while (items.size_i ())
-    eat_voice (items);
-}
index d8c67bcf2489d384d2cfdc23d7c36df70fbfb29f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,192 +0,0 @@
-//
-// mudela-stream.cc
-//
-// source file of the LilyPond music typesetter
-//
-// (c)  1997--1998, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include <assert.h>
-#include <time.h>
-#include <fstream.h>
-#include "midi2ly-global.hh"
-#include "mudela-item.hh"
-#include "mudela-stream.hh"
-#include "string-convert.hh"
-
-extern String filename_str_g;
-
-static int const INDENT_i = 8;
-
-Mudela_stream::Mudela_stream (String filename_str)
-{
-  filename_str_ = filename_str;
-  pending_indent_i_ = 0;
-  os_p_ = 0;
-  indent_i_ = 0;
-  comment_mode_b_ = false;
-  column_i_ = 0;
-  wrap_column_i_ = 68;
-  open();
-  header();
-}
-
-Mudela_stream::~Mudela_stream ()
-{
-  delete os_p_;
-  if  (indent_i_)
-    warning (_f ("lily indent level: %d", indent_i_));
-}
-
-Mudela_stream&
-Mudela_stream::operator << (char c)
-{
-  *this << to_str (c);
-  return *this;
-}
-
-Mudela_stream&
-Mudela_stream::operator << (String s)
-{
-  static String word_sep_str = "{} \t\n";
-  while  (s.length_i())
-    {
-      int i = s.index_any_i (word_sep_str) + 1;
-      if  (!i)
-       i = s.length_i();
-      String word = s.left_str (i);
-      s = s.cut_str (i, s.length_i());
-      output_wrapped (word);
-    }
-  return *this;
-}
-
-Mudela_stream&
-Mudela_stream::operator << (Mudela_item& mudela_item_r)
-{
-  mudela_item_r.output (*this);
-  *os_p_ << flush;
-  return *this;
-}
-
-void
-Mudela_stream::handle_pending_indent()
-{
-  *os_p_ << String_convert::char_str ('\t', pending_indent_i_);
-  column_i_ += pending_indent_i_ * INDENT_i;
-  pending_indent_i_ = 0;
-}
-
-void
-Mudela_stream::header()
-{
-  /* Maybe better not to translate these? */
-  *os_p_ << _ ("% Creator: ");
-  if (no_timestamps_b_g)
-    *os_p_ << "GNU LilyPond\n"; 
-  else
-    *os_p_ << midi2ly_version_str() << '\n';
-  *os_p_ << _ ("% Automatically generated");
-  if (no_timestamps_b_g)
-    *os_p_ << ".\n";
-  else
-    {
-      *os_p_ << _ (", at ");
-      time_t t (time (0));
-      *os_p_ << ctime (&t) << "%\n";
-    }
-  *os_p_ << _ ("% from input file: ");
-  //  *os_p_ << midi_parser_l_g->filename_str_;
-  // ugh
-  *os_p_ << filename_str_g;
-  *os_p_ << "\n\n";
-  // ugh
-  *os_p_ << "\\version \"1.3.76\";\n";
-}
-
-void
-Mudela_stream::open()
-{
-  os_p_ = new ofstream (filename_str_.ch_C ());
-  if  (!*os_p_)
-    error (_f ("can't open file: `%s'",  filename_str_));
-}
-
-void
-Mudela_stream::output (String str)
-{
-  for  (int i = 0; i < str.length_i(); i++)
-    {
-      char c = str[ i ];
-      switch  (c)
-       {
-       case '{' :
-       case '<' :
-         handle_pending_indent();
-         if  (column_i_ == indent_i_ * INDENT_i)
-           output ("\t");
-         indent_i_++;
-         *os_p_ << c;
-         column_i_++;
-         break;
-       case '}' :
-       case '>' :
-         assert (indent_i_);
-         indent_i_--;
-         if  (pending_indent_i_)
-           pending_indent_i_--;
-         handle_pending_indent();
-         *os_p_ << c;
-         column_i_++;
-         break;
-       case '%' :
-         handle_pending_indent();
-         comment_mode_b_ = true;
-         *os_p_ << c;
-         column_i_++;
-         break;
-       case '\t' :
-         handle_pending_indent();
-         *os_p_ << c;
-         column_i_ += INDENT_i;
-         break;
-       case '\n' :
-         *os_p_ << endl;
-         pending_indent_i_ = indent_i_;
-         column_i_ = 0;
-         comment_mode_b_ = false;
-         break;
-       default :
-         handle_pending_indent();
-         *os_p_ << c;
-         column_i_++;
-         break;
-       }
-    }
-}
-
-void
-Mudela_stream::output_wrapped (String str)
-{
-  // enough room left -> doit
-  if  (column_i_ + str.length_i() <= wrap_column_i_)
-    {
-      output (str);
-      return;
-    }
-
-  // we're at BOL already; this will never fit -> doit
-  if  (column_i_ == indent_i_ * INDENT_i)
-    {
-      output (str);
-      return;
-    }
-
-  // ok, let's wrap
-  // preserve comment mode
-  if  (comment_mode_b_)
-    output (String ("\n%"));
-  else
-    output (String ("\n"));
-
-  output (str);
-}
index c0236be33b963bbb9585cf61a0eef6a4e0f15ee4..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,105 +0,0 @@
-//
-// mudela-voice.cc -- implement Mudela_voice
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include "string-convert.hh"
-#include "midi2ly-global.hh"
-#include "mudela-column.hh"
-#include "mudela-item.hh"
-#include "mudela-staff.hh"
-#include "mudela-stream.hh"
-#include "mudela-voice.hh"
-#include "mudela-score.hh"
-
-extern Mudela_score* mudela_score_l_g;
-
-Mudela_voice::Mudela_voice (Mudela_staff* mudela_staff_l)
-{
-  mudela_staff_l_ = mudela_staff_l;
-  last_item_l_ =0;
-  last_note_l_ =0;
-}
-
-void
-Mudela_voice::add_item (Mudela_item* mudela_item_l)
-{
-  last_item_l_  = mudela_item_l;
-  if (Mudela_note* n = dynamic_cast<Mudela_note*> (mudela_item_l))
-    {
-      last_note_l_  = n;
-    }
-  mudela_item_l_list_.append (new Cons<Mudela_item> (mudela_item_l, 0));
-}
-
-/**
-   analyse pitches to determine clef.
- */
-String
-Mudela_voice::get_clef () const
-{
-  Mudela_note * n =0;
-
-  for (Cons<Mudela_item> *cp = mudela_item_l_list_.head_; !n && cp; cp = cp->next_)
-    {
-      n = dynamic_cast<Mudela_note*> (cp->car_);
-    }
-  
-  if (!n)
-    return "";
-
-  int p = n->pitch_i_;
-
-  if (p < 56)
-    return "\\clef \"bass\";\n";
-  else if (p > 67)
-    return "\\clef \"treble\";\n";
-  else
-    return "";
-}
-
-static int const FAIRLY_LONG_VOICE_i = 6;
-
-void
-Mudela_voice::output (Mudela_stream& mudela_stream_r)
-{
-  mudela_stream_r << "{ ";
-  if (mudela_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i)
-    mudela_stream_r << '\n';
-
-
-  mudela_stream_r << get_clef () << '\n';
-  
-  int current_bar_i = 0;
-  Rational bar_mom = mudela_staff_l_->mudela_time_signature_l_->bar_mom ();
-
-  for (Cons<Mudela_item>* i = mudela_item_l_list_.head_; i; i = i->next_)
-    {
-      Rational at_mom = i->car_->mudela_column_l_->at_mom ();
-      int bar_i = (int) (at_mom / bar_mom) + 1;
-      if (bar_i > current_bar_i) 
-       {
-         if (current_bar_i) 
-           {
-             if (at_mom == Rational (bar_i - 1) * bar_mom)
-               mudela_stream_r << "|";
-             mudela_stream_r << "\n% ";
-             mudela_stream_r << String_convert::i2dec_str (bar_i, 0, ' ');
-             mudela_stream_r << '\n';
-           }
-         LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush; 
-         current_bar_i = bar_i;
-       }
-
-      mudela_stream_r << *i->car_;
-      if (Mudela_key* k = dynamic_cast<Mudela_key*> (i->car_))
-       mudela_staff_l_->mudela_key_l_ = mudela_score_l_g->mudela_key_l_ = k;
-    }
-
-  if (mudela_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i)
-    mudela_stream_r << '\n';
-
-  mudela_stream_r << "} ";
-}
-
-
index 7d9de3631ed6ae3217c3265aad2db0850e65d412..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,144 +0,0 @@
-\header {
-  filename =    "gnossienne-4.ly";
-  title =       "Gnossienne";
-  subtitle =   "4";
-  composer =    "Erik Satie (1866-1925)";
-  enteredby =   "jcn";
-  copyright =   "Public Domain";
-}
-
-%{
- Tested Features: cross staff auto beams and slurs, grace notes, no bars
-%}
-
-\version "1.3.117";
-
-global =  \notes {
-       \key a \minor;
-       \time 6/4;
-       \skip 1.*34;
-       \bar "|.";
-}
-
-melody =  \notes\relative c''{
-  \clef violin;
-  \property Voice.verticalDirection = #1
-  \property Voice.graceFraction = #(make-moment 1 4)
-  r2 r r 
-  r2 r r
-  r4 a'8--(\< a--  a-- a-- c-- \!b-- a--\> gis f \!e 
-  es8 \grace b( ))c r4 r2 r
-  r2 r r
-  r4 a'8--(\< a--  a-- a-- c-- \!b-- a--\> gis f \!e 
-  es8 \grace b( ))c r4 r2 r
-  r4 g16( a bes a  g a bes a g a bes a g a bes a g fis es fis 
-  )d4 \grace fis8()gis4 ~ gis8 r r4 r2
-  r4 g16( a bes a  g a bes a g a bes a g a bes a g fis es fis 
-  )d4 \grace fis8()gis4 ~ gis8 r r4 r2
-  \grace a8()f4 ~ f8 r r2 r
-  r2 r4 a8( b c d c b \grace b8()e \grace a,())g r4 r2 r
-  r2 r4 a8( b c d c b  a b c d c b a b c d c b 
-  \grace b8()e \grace a,())g r4 r2 r
-  a2( \grace e'8()f4 ~ )f8 r r2
-  r2 r r
-  fis,4( \grace dis8<)cis4 ais> r2 r
-  \grace b'8()a \grace b()a r4 r2 r
-  r4 a'8--(\< a--  a-- a-- c-- \!b--  a--\> gis f \!e 
-  es8 \grace b())c r4 r2 r
-  d,4( \grace fis8()gis4 ~ )gis8 r r4 r2
-  f4 ~ f8 r r2 r
-  f'8( g a b a g f g a b a g 
-  \grace f8()g \grace d)e r4 r2 r
-  f8( g a b a g f g a b a g 
-  \grace f8()g8 \grace d())e r4 r2 r
-  a,2( \grace e'8() f4 ~ )f8 r r2
-  r2 r r
-  fis,4( \grace dis8<)cis4 ais> r2 r
-  <e1*6/4 g b e> ~ <e g b e>
-}
-
-basloopje =  \notes\relative c{
-  d,8( a' d f a d f d a f d )a
-}
-
-accompany =  \notes \relative c {
-  % snapnie, hoevaak relative c heeft ze nodig?
- \basloopje
- \basloopje
- \basloopje
-  \transpose bes  \basloopje 
-  \transpose bes  \basloopje 
-   \basloopje
-  \transpose bes  \basloopje 
-  \transpose bes  \basloopje 
-  \transpose a  \basloopje 
-  \transpose bes  \basloopje 
-  \transpose a  \basloopje 
- \basloopje
- \basloopje
-  % huh? d'
-  \transpose d'  \basloopje 
- \basloopje
- \basloopje
-  \transpose d'  \basloopje 
- \basloopje
- \basloopje
-  \transpose e'  \basloopje 
- \basloopje
- \basloopje
-  \transpose bes  \basloopje 
-  \transpose a  \basloopje 
- \basloopje
- \basloopje
-  \transpose d'  \basloopje 
- \basloopje
-  \transpose d'  \basloopje 
- \basloopje
- \basloopje
-  \transpose e'  \basloopje 
-  < e1*6/4 b' e> ~ < e b' e> 
-}
-
-\score{
-       \notes \context PianoStaff <
-               \context Staff=up < 
-                       \global
-                       \context Voice=foo {
-                       \stemUp
-                       \property Voice.Script \override #'direction = #1
-                       
-                       \melody 
-                       }
-               >
-               \context Staff=down <
-                       \global
-                       \clef bass;
-                       \autochange Staff \context Voice \accompany
-               >
-       >
-
-       \paper {
-               gourlay_maxmeasures = 4.;
-               indent = 8.\mm;
-               textheight = 295.\mm;
-
-               % ugly is beautiful
-               slur_beautiful = 5.0;
-
-               \translator{ 
-                       \StaffContext
-                       % don't auto-generate bars: not a good idea: -> no breakpoints
-                       % barAuto = #f
-                       defaultBarType = #""
-                       \remove "Time_signature_engraver";
-
-                       slurVerticalDirection = #1
-                       verticalDirection = #-1
-                       autoBeamSettings \override #'(end * * * *) = #(make-moment 1 2)
-               }
-       }
-       \midi {
-               \tempo 4 = 54;
-       }
-}
-
index bb33ed42dd96b403cb39cde6beb8ecdeacd10545..ebf1c3432cd1fa4006c251f7f52eec56f39c44fc 100644 (file)
@@ -2,7 +2,7 @@
 
 depth = ../..
 
-SUBDIRS = Petites-Preludes Solo-Cello-Suites Cembalo-Partitas Duette
+SUBDIRS = Petites-Preludes Cembalo-Partitas Duette
 EXTRA_DIST_FILES=
 
 
index 9a412fa1148126df2e761dcd784a5172a795e475..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,15 +0,0 @@
-# mutopia/J.S.Bach/Solo-Cello-Suites/Makefile
-
-depth = ../../..
-
-EXTRA_DIST_FILES=
-
-examples=scsii-cello
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/make/stepmake.make
-
-tarball=solo-cello-suite-ii
-mutopia-examples=scsii-cello scsii-viola
-mutopia-letter=$(mutopia-examples:%=out-letter/%.ps.gz)
-
index 0784c3fda0d022241afc19ca2ad5015cabc8820f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,40 +0,0 @@
-
-
-\version "1.3.117";
-
-\include "allemande-urtext.ly";
-
-allemandeCelloGlobal =  \notes{
-       \time 4/4;
-       \key f \major;
-       \clef bass;
-       \repeat "volta" 2 {
-               \partial 16;
-               s16
-               s1*11 |
-               s2 s4 s8.
-       } \repeat "volta" 2 {
-               s16
-               s1*11
-               s16*15
-       }
-}
-
-allemandeCelloScripts =  \notes{
-}
-
-allemandeCelloStaff =  \context Staff <
-       \allemande
-       \allemandeCelloGlobal
-       \allemandeCelloScripts
->
-
-\score{
-       \allemandeCelloStaff
-       \paper{ }
-       \midi{ \tempo 4 = 45; }
-       \header{ piece = "Allemande";
-         opus = "";
-
-         }
-}
index 679501b975e062a4f14bb0189a6dcb94818f8d88..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,103 +0,0 @@
-% allemande-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-allemandeA =  \context Staff \notes \relative c {
-       \context Voice=i
-       \stemUp
-       a'16 | 
-       a8 bes16()a \stemBoth
-       g()f e()d d()cis d()e a,8 bes16()g |
-       f( a )d f,  e8 cis' \stemUp d8. e16 \stemBoth f g a bes! |
-       %3
-       \stemUp c8 d16()es \stemBoth d()c bes()a c()bes a()g d'8. f,16 |
-       e( g )bes d c()bes a()g bes()a g()f 
-       < f8. a> <f16 a > |
-       % urg fix
-       b f( e )d e cis' d cis \stemUp d8. e16 \stemBoth
-       f( e d)e |
-       %6
-       d( c b )c b( a gis)a gis8-\prall fis16()e e' c( a )g |
-       \stemUp e' a, f d  d f d b \stemBoth
-       gis( b e )gis b d c b |
-       %8
-       c( a f )e d( f e )d gis8.-\trill()a16 b d e, d |
-       % urg
-       c e a d \stemUp b8.-\trill a16 a8 s4 s8 \stemBoth |
-       %10
-       d,!16 gis( a b a gis fis )e \stemUp e8 f16()e \stemBoth
-       d()c b()a |
-       \stemUp d8 e16()f \stemBoth e d c b 
-       \stemUp d'16()b c()a \stemBoth e8 gis |
-       a,8. cis16 e g! f! e f a d gis, [ a8. ]
-       %13
-       e16 \stemUp e8. f16 \stemBoth
-       g!()e f()a cis,( d )e bes a8.-\trill()g16 |
-       f a'(f)d g b,()cis a' g(f e)d fis d()es c( |
-       %15
-       )bes g'(a, )g fis a d c' bes(fis)g bes d()a bes()g |
-       es(d)es g c()a bes()g d c d g bes()fis g()es |
-       %17
-       c(bes)c bes' a(c)es g, \stemUp fis8-\trill g16 a \stemBoth
-       d,8 es16 c |
-       bes d g bes, d,8 fis' \stemUp g8. a16 \stemBoth bes d g, f |
-       %19
-       \stemUp e8.-\trill f16 \stemBoth g e c bes 
-       a()f' g,()f e g'( a )bes |
-       bes( a g )f
-       a()e f()d bes d(f)a d()a bes()g |
-       %21
-       a,()g'cis()d e()g, a()e f()d bes()d gis, f' e d |
-       d( cis b )a
-       c(a)fis d' c a( b )d 
-       f!(d )gis, d' |
-       %23
-       cis(e g!)bes e()a, bes()g f()cis d()gis, a8 cis! |
-       % knee
-       \stemUp d,16 \stemBoth d''(c!)a bes!(g)e cis' d a f d d,8.
-       \bar "|.";
-}
-
-allemandeB =  \notes \relative c {
-       \context Voice=ii
-       \stemDown
-       s16 |
-       % <d'8 g' f'> s8 s2. |
-       <f8 g, d> s8 s2. |
-       s2 <a,8. d,> s16 s4 |
-       <fis'8 a, d,> s8 s2. |
-       s1 | 
-       %5
-       s2 d8. s16 s4 |
-       s1 |
-       f!16 s16*3 b, s16*3 s2 |
-       s1 |
-       \slurDown
-       s4 e [dis8 ~ dis32 e( fis gis] [a b c d! c b c )a] |
-       \slurBoth
-       %10
-       s2 <a8 c,> s8 s4 |
-       <b8 gis,> s8 s4 <e,8 a,> s8 s4 |
-       s2 s4 s8.
-       s16
-       <cis'8 g,> s8 s2. |
-       %15
-       s1*3 |
-       s2 c,8 s8 s4 |
-       s2 g8. s16 s4 |
-       bes8. 
-%      }
-}
-
-allemande =  \context Staff \notes<
-       \allemandeA
-       \allemandeB
->
-
-
-\version "1.3.117";
index c6ac0d371d806e36cd5894246fc01cdc466bbe77..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,39 +0,0 @@
-
-\version "1.3.117";
-
-\include "allemande-urtext.ly";
-
-allemandeViolaGlobal =  \notes{
-       \time 4/4;
-       \key f \major;
-       \clef alto;
-       \repeat "volta" 2 {
-               \partial 16;
-               s16
-               s1*11 |
-               s2 s4 s8.
-       } \repeat "volta" 2 {
-               s16
-               s1*11
-               s16*15
-       }
-}
-
-allemandeViolaScripts =  \notes{
-}
-
-allemandeViolaStaff =  \context Staff <
-       \notes \transpose c'' \allemande
-       \allemandeViolaGlobal
-       \allemandeViolaScripts
->
-
-\score{
-       \allemandeViolaStaff
-       \paper{ }
-       \midi{ \tempo 4 = 45; }
-       \header{ piece = "Allemande";
-         opus = "";
-       }
-}
-
index f563e3f735b8c8e9cef1e803ee402d3b3d1441e5..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,39 +0,0 @@
-
-\version "1.3.117";
-
-\include "courante-urtext.ly";
-
-couranteCelloGlobal =  \notes{
-       \time 3/4;
-       \key f \major;
-       \clef bass;
-       \repeat "volta" 2 {
-               \partial 16;
-               s16
-               s2.*15
-               s2 s8.
-       } \repeat "volta" 2 {
-               s16
-               s2.*15
-               s16*11
-       }
-}
-
-couranteCelloScripts =  \notes{
-}
-
-couranteCelloStaff =  \context Staff <
-       \courante
-       \couranteCelloGlobal
-       \couranteCelloScripts
->
-
-\score{
-       \couranteCelloStaff
-       \paper {}
-       \midi{ \tempo 4 = 55; }
-       \header{ piece = "Courante";
-                 opus = "";
-                 }
-}
-
index 09a67d62258e89703b5926bc50a761258b91f1e5..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,92 +0,0 @@
-% courante-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-couranteA =  \context Staff \notes \relative c {
-       \context Voice=i
-       d'16 |
-       d a f a d, f g a bes a bes g |
-       \stemUp <g4 a> s4 \stemBoth g16 f g e |
-       % urg, a good case for mean-distance-beam-dir-algorithm!
-       f d e c! bes(a)bes a' g f e d |
-       %4
-       cis e a,(b cis d e f )g bes-- a e |
-       f a d,( e f g a bes )c bes-- d c |
-       \stemUp <c4 f,> ~ < c16 f,> bes a g \stemBoth f()es d()es |
-       %7
-       d bes(a)bes d bes e! bes f' bes, g' bes, |
-       e, g c d e f g a bes a bes g |
-       a f(e)f a f bes f c' f, d' f, |
-       %10
-       cis( e )a b cis d e f g()f g()e |
-       d,( a' )f' e d()c d()c b()a b()a |
-       gis( a )b e, f()e f()d e()c d()b |
-       %13
-       c a'( b c b a gis)a d, a' e a |
-       f a( b c b a gis)a f a e a |
-       dis, a'( b c b a gis)a e a e gis |
-       a e cis e a, cis e gis [ a8. ]
-       e'16
-       %17
-       e cis a cis e, f g a bes()g cis()g |
-       \stemUp d'4 ~ d16 a d e f d a c! \stemBoth |
-       b16 f(d)f g, d' f g b f d' f, |
-       %20
-       e g c, d e f g a bes! d c g |
-       \stemUp a s16*3 s4 s4
-       d, ~ d16 e! f g \stemBoth a bes c d |
-       %23
-       e, bes a g a f' g,()f c g' f' e |
-       f a bes a g f e f g e f d |
-       cis g' b, g' a, g' b, g' cis, g' a, g' |
-       %26
-       f d f a d a d e f a, f d |
-       g, d' g a bes g' a, f' g, e' f, d' |
-       cis(d)e cis a cis bes cis a cis g cis |
-       %29
-       f, d'(e f e d cis)d g, d' a d |
-       bes d e f e d cis d bes d a d |
-       gis, d'(e f e d cis)d a d a cis |
-       d a f a d, f a, d 
-       d,8.
-       \bar "|.";              
-}
-
-couranteB =  \notes \relative c {
-       \context Voice=ii
-       \stemDown
-       s16 |
-       s2. |
-       %2
-       cis4 ~ cis16 d e f s4 |
-       s2.*3 |
-       %6
-       a,4 s2
-       s2.*9
-       % 16
-       s2 s8.
-       s16
-       s2.
-       %18
-       f'4 s s |
-       s2.*2
-       %21
-       \slurUp
-       f16 c'(bes a g f es d )es c' f, es |
-       \slurBoth
-       bes4 s s
-       s2.*9
-       s2 s8.
-}
-
-courante =  \context Staff \notes<
- \couranteA
- \couranteB
->
-
-\version "1.3.117";
index dd7a0392d6640ab317f6b66f507b7467582822a8..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,42 +0,0 @@
-
-
-
-\version "1.3.117";
-
-\include "courante-urtext.ly";
-
-couranteViolaGlobal =  \notes{
-       \time 3/4;
-       \key f \major;
-       \clef alto;
-       \repeat "volta" 2 {
-               \partial 16;
-               s16
-               s2.*15
-               s2 s8.
-       } \repeat "volta" 2 {
-               s16
-               s2.*15
-               s16*11
-       }
-}
-
-couranteViolaScripts =  \notes{
-}
-
-couranteViolaStaff =  \context Staff <
-       \notes \transpose c'' \courante
-       \couranteViolaGlobal
-       \couranteViolaScripts
->
-
-\score{
-       \couranteViolaStaff
-       \paper{ }
-       \midi{ \tempo 4 = 55; }
-       \header{
-               opus= "" ; 
-               piece ="Courante";
-       }
-}
-
index 6b937b7895b0a0b3ccfb6a7f7e747b67d0e8d2af..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,51 +0,0 @@
-
-
-
-\version "1.3.117";
-
-\include "gigue-urtext.ly";
-
-gigueCelloGlobal =  \notes{
-       \time 3/8;
-       \key f \major;
-       \clef bass;
-       \repeat "volta" 2 {
-               \partial 8;
-               s8
-               s4.*31
-               s4
-               %\partial 4;
-       } \repeat "volta" 2 {
-               % urg
-               %s16 \partial 8; s16
-               s8
-               s4.*43
-               s4
-               %\partial 4;
-       }
-}
-
-gigueCelloScripts =  \notes{
-}
-
-gigueCelloStaff =  \context Staff <
-       \gigue
-       \gigueCelloGlobal
-       \gigueCelloScripts
->
-
-\score{
-       \gigueCelloStaff
-       \paper{
-               \translator{
-                       \VoiceContext
-                       autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
-                       autoBeamSettings \override #'(end 1 16 * *) = #(make-moment 3 4)
-               }
-       }
-       \midi{ \tempo 4 = 60; }
-       \header{
-       opus= "" ; 
-piece = "Gigue"; }
-}
-
index 8ca129d2459e199f22856914c737af0876e3319b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,106 +0,0 @@
-% gigue-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-%
-% this must be redone a bit:
-% 
-% * slurs/ties in two different threads (like beams): urtext, and additionals
-% 
-
-gigueNotes =  \context Staff \notes \relative c {
-       \context Voice=i
-       a'8 |
-       d,4 bes'8 | cis,4 g'8 | f16 e f g a8 |
-       d,4 d'8 | e,16(f)g8 bes | c,16(d)e8 c' | a16 g a bes c a |
-       %8
-       f4-\trill a8 | b,()g' cis, | d f16( c bes )a | g8()es' a, |
-       bes d16( a g )f | e!8()cis' bes' a g16( f e)d |
-       %15
-       \stemUp e(f g e f)d \stemBoth e8()a, c'! |
-       \stemUp c16(d es c d)a bes8 r bes |
-       bes16(c d bes c)g a8 r a |
-       %21
-       b16()c d()b c()a | d()e f()d e()c | b()c d()b c()a | e'4 gis,8 |
-       a16()b c()a d()b |
-       a()b c()a d()b |
-       %27
-       a()b c()a d()b |
-       a()b c()a d()b |
-       f'8 e16()d c()b \stemBoth | 
-       e,, e''(d)c b()gis | a f(e)d e()cis | a4
-       %33
-       c'!8 |
-       f,4 d'8 | e,4 bes'8 | a16 g a bes c8 | f,4 a8 |
-       d,16(e)f d(c)b | g' a g f e d | 
-       %39
-       e(d)e f(g)e | c4 e8 | fis16(g)a c, bes a | 
-       bes(d)g bes, a g | fis(a)c es d c | bes(a)bes d g bes |
-       %45
-       as(g)as fis g es' | d,8 g fis | g16 es(d)c d()bes | g4 bes'8
-       % what about this?
-       \stemUp\stemDown e,!16(f)g e f d\stemBoth
-       c(d e) c d bes | a(bes)c a bes g | f4 a'8
-       % what about this?
-       \stemUp\stemDown d,16(e)f d e c\stemBoth bes(c)d bes c a 
-       g16(a)bes g a f | e4 g'8 
-       %57
-       a,16(b cis d)e g-. | f(g a cis )d f, | e(f g a)bes d,-. |
-       cis(d)e a, bes g 
-       \stemUp
-       d'()e f()d g()e |
-       %62
-       d()e f()d g()e |
-       d()e f()d g()e |
-       d()e f()d g()e |
-       \stemBoth
-       cis bes'(a g f)e | f, a' g f e cis |
-       %67
-       d bes a g a f | d a' d e f d | 
-       \stemUp es()f g()es f()d | g()a bes()g a()f es()f g()es f()d |
-       %72
-       cis'4 \stemBoth d16()c | bes(a g f e)d | cis(b a g f)e | d f a d f a |
-       d4
-       \bar "|.";              
-}
-
-gigueB =  \context Staff \notes \relative c {
-       \context Voice=ii
-       \stemDown
-       s8
-       s4.*14
-       a4. | s d | d8 g, d' | e4. | f8 f, f' |
-       %21
-       d d d  d d d  d d d |
-       % one could type r here...
-       d4 s8 | <e c> s s | d s s | e s s | f s s | gis s4 |
-       s4. s s4 
-       %33
-       s8
-       s4.*16
-       \stemUp bes4 s8
-       s4. s s 
-       a8 s4 \stemDown
-       s4.*7
-       <a,8 f> s s g s s a s s bes s s
-       s4.*4
-       g8 g g  g g g  g g g 
-       %72
-       <g4 e'>
-}
-
-gigueA =  \context Voice \notes<
-       \gigueNotes
->
-
-gigue =  \notes<
-       \gigueA
-       \gigueB
->
-
-\version "1.3.117";
index d8efcf42885c2196c0fd76157be96dc00d79480d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,49 +0,0 @@
-
-
-\version "1.3.117";
-
-\include "gigue-urtext.ly";
-
-gigueViolaGlobal =  \notes{
-       \time 3/8;
-       \key f \major;
-       \clef alto;
-       \repeat "volta" 2 {
-               \partial 8;
-               s8
-               s4.*31
-               s4
-               \partial 4;
-       } \repeat "volta" 2 {
-               % urg
-               s16 \partial 8; s16
-               s4.*43
-               s4
-               \partial 4;
-       }
-}
-
-gigueViolaScripts =  \notes{
-}
-
-gigueViolaStaff =  \context Staff <
-       \notes \transpose c'' \gigue
-       \gigueViolaGlobal
-       \gigueViolaScripts
->
-
-\score{
-       \gigueViolaStaff
-       \paper{
-               \translator{
-                       \VoiceContext
-                       autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
-                       autoBeamSettings \override #'(end 1 16 * *) = #(make-moment 3 4)
-               }
-       }
-       \midi{ \tempo 4 = 60; }
-       \header{
-       opus= "" ; 
-       piece ="Gigue"; }
-}
-
index 537082799acc9e9f045022e07c06a2ca7eb82550..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,41 +0,0 @@
-%{
-Header for Solo Cello Suite no. 2.
-
-This is the 2nd cello suite by Bach, in versions for both cello and
-viola.  It was coded by JCN following a Baerenreiter
-urtext. Optionally you can add or remove slurs etc. to taste. 
-
-The setup of the files is slightly complicated, because sharing of
-information is taken to the extreme.
-
-%}
-
-\header{
-  title =       "Solo Cello Suites";
-  subtitle =    "Suite II";
-  opus =        "BWV 1008";
-  composer =    "Johann Sebastian Bach (1685-1750)";
-  enteredby =   "JCN";
-  instrument =  \instrument;
-
-  % mutopia headers.
-  mutopiatitle = "Solo Cello Suites, Suite II";
-  mutopiacomposer = "J.S.Bach (1685-1750)";
-  mutopiaopus =        "BWV1008";
-  mutopiainstrument = \intrument;
-  date = "1710s, 1720s";
-  source = "Baerenreiter urtext";
-  style = "Baroque";
-  copyright = "Public Domain";
-  maintainer = "Jan Nieuwenhuizen";
-  maintainer_email = "janneke@gnu.org";
-  lastupdated =         "2001/Jan/31";
-  mutopiapublicdomain = "\\parbox{\hsize}{\\thefooter\\quad\\small
-    \\\\This music is part of the Mutopia project,
-    \\texttt{http://www.mutopiaproject.org/}\\\\It has been typeset
-    and placed in the public domain by " + \maintainer +
-    ".\\\\Unrestricted modification and redistribution is permitted
-    and encouraged---copy this music and share it.}";
- tagline = \mutopiapublicdomain;
- footer = "Mutopia-2001/01/31-2";
-}
index 087edfd4eab86a457282c2b571839ad25258f6b8..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,105 +0,0 @@
-
-
-
-\version "1.3.117";
-
-\include "menuetto-urtext.ly";
-
-menuettoICelloGlobal =  \notes{
-       \context Voice=i
-       \time 3/4;
-       \key f \major;
-       \clef bass;
-       \repeat "volta" 2 {
-               \skip 2.*8;
-       }
-       \repeat "volta" 2 {
-               \skip 2.*1;
-               %\slurDotted
-               \skip 2.*14;
-               \emptyText
-               s2._"Fine"
-       }
-}
-
-menuettoICelloScripts =  \notes{
-       \context Voice=i
-       s2.
-       s8^"~"^1_2_4 s8 s4 s^4
-       s4^0_1 s_4 s
-       s2.*5
-       s2^3 s4
-       s4 s8_1 s s4
-       s2.
-       s2 s8^4 s
-       s2.
-       s8 s^2 s^4
-       s_2 s s s_0 s_4 s_1
-       s2.*2
-       s4^3_1
-       s^1_3 s4
-       s2.
-       s4_2 s2
-       s8^2_3 s s s^1 s4^1
-}
-
-menuettoICelloStaff =  \context Staff <
-       \menuettoI
-       \menuettoICelloGlobal
-%      \menuettoICelloScripts
->
-
-\score{
-       \menuettoICelloStaff
-       \paper{
-               \translator{
-                       \VoiceContext
-                       autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
-               }
-       }
-       \midi{ \tempo 4 = 110; }
-       \header{
-       opus= "" ; 
-       piece ="Menuetto I"; }
-}
-
-menuettoIiCelloGlobal =  \notes{
-       \context Voice=i
-       \time 3/4;
-       \key d \major;
-       \clef bass;
-       \repeat "volta" 2 {
-               \skip 2.*8;
-       }
-       \repeat  "volta" 2 {
-               \skip 2.*1;
-               %\slurDotted
-               \skip 2.*14;
-               \emptyText
-               s2._"Menuetto I da Capo"
-       }
-
-}
-
-menuettoIiCelloStaff =  \context Staff <
-       \menuettoIi
-       \menuettoIiCelloGlobal
-%      \menuettoIiCelloScripts
->
-
-\score{
-       \menuettoIiCelloStaff
-       \paper{
-               \translator{
-                       \VoiceContext
-                       autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
-
-               }
-       }
-       \midi{ \tempo 4 = 130; }
-       \header{
-               piece = "Menuetto II";
-               opus = "";
-       }
-}
-
index 33b8dc2f10b66821424d1e2fc471297f40ca8234..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,153 +0,0 @@
-% menuetto-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-menuettoIA =  \context Staff \notes \relative c {
-       \context Voice=i
-       <d2\f f a> bes'4 |
-       bes8 a bes g a4 |
-       <d,4 bes> g f8 e |
-       f8( e )d cis b a |
-       <d2 f a> bes'!4 |
-       bes8 a bes g c!4 | 
-       %7
-       <a f> <d f, bes,> <e g, g,> |
-       <cis2. e, a,> |
-       <a2\f e'> d8 e16 f |
-       e8 d cis e a, g |
-       a4 d cis |
-       g'8 f e f d c |
-       %13
-       bes2 c4 |
-       a8 g a f <d'4 e, bes> |
-       <c f, a,> bes8 a g a |
-       f8 e f a g bes |
-       <a2^\trill fis> bes4 |
-       c8 bes c a fis4^\trill |
-       %19
-% dispute
-%      <bes,4 g' d'> <c, g' c> < d,8 bes'(> )a |
-       <d'4 g, bes,> <c g c,> bes8 a |
-       c8 bes a bes g bes |
-       d4 cis d |
-       g,8 f g e f4 |
-       g,8 g' <{e4.^\trill d8 } a4.> ~ |
-       <d2. a d,> |
-}
-
-menuettoIB =  \context Staff \notes \relative c {
-       \context Voice = ii
-       \stemDown
-       \skip 2.*1; |
-       <e8 c> \skip 8*5; |
-       \skip 2.*1; |
-       a,8 \skip 8*5; |
-       \skip 2.*1; |
-       e'8 \skip 8*5; |
-       \stemBoth
-       s2.*2 |
-       s2.
-       g8 \skip 8*5; |
-       f2 e4
-       d8 \skip 8*5; |
-       g4 () f e
-       f8 \skip 8*5; |
-       \skip 2.*3; |
-       es8 \skip 8*3; d4 |
-       \skip 4*2; d4 |
-       <d8 g,> \skip 8*5; |
-% dispute
-%      g2 f4 |
-       g4 \skip 4*1; f4 |
-       cis8 \skip 8*3; d4 |
-       s2.*2
-       \bar "|.";              
-}
-
-% UGH, fix this like in sarabande
-menuettoIAVoiceUrg =  \notes{
-       \context Voice = i
-       \skip 2.*1; \stemUp
-       \skip 2.*1; \stemBoth
-       \skip 2.*1; \stemUp
-       \skip 2.*1; \stemBoth
-       \skip 2.*1; \stemUp
-       \skip 2.*1; \stemBoth
-       \skip 2.*3; \stemUp
-       \skip 2.*1; \stemUp
-       \skip 2.*3;
-       \skip 4*2; \stemBoth
-       \skip 4*2; \stemUp
-       \skip2.*1; \stemUp
-       \skip 4*2; \stemBoth
-       \skip2.*1; \stemUp
-       \skip 2.*1; \stemBoth
-       \skip 2*1; \stemUp
-       \skip 4*1;
-       \skip 2.*4; \stemBoth
-       \skip 2.*1;
-}
-
-menuettoIAVoiceUrgUrg =  \notes<
-       \menuettoIAVoiceUrg
-       \menuettoIA
->
-
-menuettoIBVoiceUrg =  \notes{
-       \context Voice=ii
-       \stemDown
-       % urg urg, huh?
-       \skip 2.*8; \stemDown
-}
-
-menuettoIBVoiceUrgUrg =  \notes<
-       \menuettoIBVoiceUrg
-       \menuettoIB
->
-
-menuettoI =  \context Staff \notes<
-       \repeat "volta" 2 { \menuettoIAVoiceUrgUrg }
-       \repeat "volta" 2 { \menuettoIBVoiceUrgUrg }
->
-
-menuettoIi =  \context Staff\notes \relative c {
-       \context Voice=i
-       fis4^\trill d8 e fis g |
-       a4 fis, a' |
-       g,8 b e4 g |
-       d8( cis )b cis a g |
-       % ugh, forcing knee
-       % Lily's not yet smart enough to decide for herself.
-       \stemUp fis \stemBoth d''( cis b a )g |
-       b( a g fis e )d |
-       %7
-       cis d g4 fis8( g16 )a |
-       <\stemDown a,2. \stemUp e'> |
-       \stemBoth
-       cis4^\prall e8( d cis )b |
-       cis4 g, cis' |
-       fis,8()a d4 fis |
-       b,8()a g()fis g b |
-       %13
-       e, d'( cis )b cis()ais |
-       d, b'( a! g fis )e |
-       g( fis e d cis )d |
-       b( cis d e fis )g |
-       a( g fis g a )b |
-       c4 dis,, c'' |
-       %19
-       b8()a c( b a )g |
-       fis() g a()fis g()e |
-       cis4^\trill a8 b cis d |
-       e( fis g )b a4 |
-       g8()fis e()d e()cis |
-       d2.
-       \bar "|.";      
-}
-
-\version "1.3.117";
index 990842621a01ec6044ea0d1b7db3e3226d755887..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,102 +0,0 @@
-
-
-
-\version "1.3.117";
-
-\include "menuetto-urtext.ly";
-
-menuettoIViolaGlobal =  \notes{
-       \context Voice=i
-       \time 3/4;
-       \key f \major;
-       \clef alto;
-       \repeat "volta" 2 {
-               \skip 2.*8;
-               \clef violin;
-               \skip 2.*1;
-       } \repeat "volta" 2 {
-               %\slurDotted
-               \skip 2.*3;
-               \clef alto;
-               \skip 2.*11;
-               \emptyText
-               s2._"Fine"
-       }
-}
-
-menuettoIViolaScripts =  \notes{
-       \context Voice=i
-       s2.
-       s8^"~"^1_2_4 s8*5
-       s2.*5
-       s4 s-\upbow s-\downbow
-       s2.-\upbow
-       s2.*5
-       s2 s4-\upbow
-       s4-\downbow s2
-       s2.*1
-       s2^0 s4
-       s2.*1
-       s4-\downbow s4-\upbow
-}
-
-menuettoIViolaStaff =  \context Staff <
-       \notes \transpose c'' \menuettoI
-       \menuettoIViolaGlobal
-%      \menuettoIViolaScripts
->
-
-\score{
-       \menuettoIViolaStaff
-       \paper{
-               gourlay_maxmeasures = 7.0;
-               \translator{
-                       \VoiceContext
-                       autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
-
-               }
-       }
-       \midi{ \tempo 4 = 110; }
-       \header{
-               opus= "" ; 
-               piece ="Menuetto I";
-       }
-}
-
-menuettoIiViolaGlobal =  \notes{
-       \context Voice=i
-       \time 3/4;
-       \key d \major;
-       \clef alto;
-       \repeat "volta" 2 {
-               \skip 2.*8;
-       } \repeat "volta" 2 {
-               \skip 2.*1;
-               %\slurDotted
-               \skip 2.*14;
-               \emptyText
-               s2._"Menuetto I da Capo"
-       }
-}
-
-menuettoIiViolaStaff =  \context Staff <
-       \notes \transpose c'' \menuettoIi
-       \menuettoIiViolaGlobal
-%      \menuettoIiViolaScripts
->
-
-\score{
-       \menuettoIiViolaStaff
-       \paper{
-               \translator{
-                       \VoiceContext
-                       autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
-
-               }
-       }
-       \midi{ \tempo 4 = 130; }
-       \header{
-       opus= "" ; 
-       piece ="Menuetto II"; }
-}
-
index d85d5a703acf12cb365e60deb7186667b03b4c6d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,33 +0,0 @@
-
-
-
-\version "1.3.117";
-
-\include "prelude-urtext.ly";
-
-preludeCelloGlobal =  \notes{
-       \time 3/4;
-       \key f \major;
-       \clef bass;
-       \skip 2.*63;
-       \bar "|.";
-}
-
-preludeCelloScripts =  \notes{
-}
-
-preludeCelloStaff =  \context Staff <
-       \prelude
-       \preludeCelloGlobal
-       \preludeCelloScripts
->
-
-\score{
-       \preludeCelloStaff
-       \paper{ }
-       \midi{ \tempo 4 = 40; }
-       \header{
-       opus= "" ; 
-       piece ="Pr\\'elude"; }  
-}
-
index 701327fce3b3a25e4e2a938c4b0b8cda019155ff..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,197 +0,0 @@
-% prelude-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% who is going to make a -violin.ly? 
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet see viola_scripts .
-%}
-
-preludeNotes =  \notes \relative c {
-       \context Voice=i
-       d8 f a4 ~ a16 f e d |
-       cis e g a bes4 ~ bes16 a g f |
-       e g bes cis e8. bes16 a16 g f e |
-       f g a f d8 c! bes a |
-       %5
-       bes16 d f a d8. c16 bes a g f |
-       e g bes d c a bes g f e g bes, |
-       a c e g c8. bes16 a g f e |
-       d f a c bes g a f e f a f |
-       %9
-       g, bes d f bes8. a16 g f e g |
-       a, c e g c a e g f a d, es |
-       d a bes d g bes a c bes g d' f, |
-       %12
-       e b c e g d e c bes g e' bes |
-       f8 a c4 ~ c16 bes a g |
-       fis a bes c d, c' bes a fis' es d c |
-       bes a g bes d4 ~ d16 c bes a |
-       %16
-       gis b c d e, d' c b gis' f e d |
-       c b a c f e f gis a f d c |
-       b d gis b d8. c16 b a gis a |
-       %19
-       c, e a c e8. c16 b a gis a |
-       d, f a d f8. e16 d c b d |
-       e, d' c b a c b a d, b' a gis |
-       %22
-       c, a' g! f cis g' f e d f e d |
-       gis, d' e f b f e d gis, d' c b |
-       a b c e a b c a e c a g! |
-       % 25
-       % B"arenreiter and Chester say "c bes c"
-       fis a c d es8. d16 c bes c a' |
-       bes, a bes d g, es' f g a, g' f es |
-       d c d f bes, g' a bes cis, bes' a g |
-       % 28
-       f e f a d, bes' c! d e,! d' c bes |
-       a g a c f, d' e f g, f' e d |
-       cis g f e a, e' f g cis bes! a g |
-       %31
-       f g a cis d a g f a f e d |
-       gis d e f a, f' e d gis f! e d |
-       cis b cis e a e cis e a, g'! f e |
-       %34
-       f e f a d a f a d, c'! bes a |
-       g f g cis e cis g cis a, g' f e |
-       d a' d e f d a f d c'! bes a |
-       %37
-       g a bes d, es f g a bes g es' g, |
-       f g a cis, d e! f g a f d' f, |
-       e f g bes, a b cis d e bes g' bes, |
-       %40
-       cis,8 a' g'4 ~ g16 bes a g |
-       f e d e f d a' f d' a f d |
-       gis,8 f' d'4 ~ d16 f e d | 
-       cis b a b cis a d a e' a, f' a, |
-       %44
-       g' e cis e a, cis e f g f g e |
-       f d cis d a cis d e f e f d |
-       e cis b cis a b cis d e d e cis |
-       %47
-       d b a b f gis b cis d cis d b |
-       \stemUp <cis4^\fermata e,> \stemBoth r r |
-       bes16 g fis g es g d g es g bes d, |
-       cis-- e! g a bes8. a16 g fis g e' |
-       %51
-       f,! d' bes g a f e g f d cis e |
-       d bes a g fis-- a c! es d c bes a |
-       bes g fis g es g d g es g bes d, |
-       %54
-       \stemUp g'8. f16 
-       e!16 d cis b a g f e \stemBoth |
-       d-- a' d e f e d c! bes! a g f |
-       e-- a cis e g f e d cis b a g |
-       f a d f a d, f a d bes! c! a |
-       g, d' g a bes g fis g es' g, d' g, |
-       \stemUp <cis2. g> | <d f,> | <d e,> | <cis e,> | <d f,>
-}
-
-preludeB =  \notes \relative c {
-       \context Voice=ii
-       \stemDown
-       s2.*47
-       %48
-       g4 s2 |
-       s2.*5
-       %54
-       <cis,4 bes'> s2 |
-       s2.*4
-       a'2. a a a <a d,>
-}
-
-
-figB =  \notes{ s16( s s )s }
-figC =  \notes{ s16( s ) s s }
-figD =  \notes{ s16 s( s )s }
-figE =  \notes{ s16( s s s s s s )s }
-figF =  \notes{ s8.()s16 }
-
-% of course, i just type fig1, and add the \ and the silly $ later
-preludeSlurs =  \notes{
-       \context Voice=i
-       s4 s4 \figD |
-       \figB s4 \figD |
-       \figB s4 \figD |
-       \figB s8( s s )s  |
-       %5
-       \figD s2 |
-       s2. |
-       s2 \figB |
-       s2 \figB |
-       s2 \figB |
-       %10
-       \figD \figD \figB |
-       \figD \figD s4 |
-       \figD s2 |
-       s4 s4 \figD |
-       \figD \figD \figD |
-       %15
-       s4 s s16 s s8 |
-       \figD \figD s4 |
-       s2. |
-       \figB s4 \figB |
-       s2 \figB |
-       %20
-       \figB s4 \figB |
-       s4 \figD \figD |
-       \figD \figD \figD |
-       s2 \figB |
-       s2. |
-       %25
-       \figD s4 \figB |
-       \figC \figD \figD |
-       \figC \figD \figD |
-       \figC \figD s4  |
-       \figC \figD \figD |
-       %30
-       \figD \figD \figB |
-       \figC \figD \figD |
-       s2. |
-       s4 \figD \figD |
-       \figC \figD \figD |
-       %35
-       \figC s2 |
-       s2. |
-       s2. |
-       s2. |
-       s2. |
-       %40
-       s4 s4 \figD |
-       \figB s2 |
-       s2 \figD |
-       \figC s2 |
-       s2. |
-       %45
-       s2. |
-       s4 \figC s4 |
-       \figD \figC s4 |
-       s2. |
-       \figD s2 |
-       %50
-       \figD s4 \figC |
-       s2. |
-       s4 \figD s4 |
-       s2 \figC |
-%      s8()s \figE |
-%      s8.()s16 \figE |
-       \figF \figE |
-       %55
-       \figD \figE |
-       \figD \figE |
-       \figD \figD s4 |
-       s4 \figD s4 |
-}
-
-preludeA =  \notes<
-       \preludeNotes
-       \preludeSlurs
->
-
-prelude =  \context Staff \notes<
-       \preludeA
-       \preludeB
->
-
-\version "1.3.117";
index cf17a8bb7130f9c77064068d33fecfb65c107ca4..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,33 +0,0 @@
-
-
-
-\version "1.3.117";
-
-\include "prelude-urtext.ly";
-
-preludeViolaGlobal =  \notes{
-       \time 3/4;
-       \key f \major;
-       \clef alto;
-       \skip 2.*63;
-       \bar "|.";
-}
-
-preludeViolaScripts =  \notes{
-}
-
-preludeViolaStaff =  \context Staff <
-       \notes \transpose c'' \prelude
-       \preludeViolaGlobal
-       \preludeViolaScripts
->
-
-\score{
-       \preludeViolaStaff
-       \paper{ }
-       \midi{ \tempo 4 = 40; }
-       \header{
-       opus= "" ; 
-       piece ="Pr\\'elude"; }
-}
-
index c63c2693f8c98e909cdbe2450134b5d198116b28..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,36 +0,0 @@
-
-
-
-\version "1.3.117";
-
-\include "sarabande-urtext.ly";
-
-sarabandeCelloGlobal =  \notes{
-       \time 3/4;
-       \key f \major;
-       \clef bass;
-       \repeat "volta" 2 {
-               s2.*12
-       } \repeat "volta" 2 {
-               s2.*16
-       }
-}
-
-sarabandeCelloScripts =  \notes{
-}
-
-sarabandeCelloStaff =  \context Staff <
-       \sarabande
-       \sarabandeCelloGlobal
-       \sarabandeCelloScripts
->
-
-\score{
-       \sarabandeCelloStaff
-       \paper{ }
-       \midi{ \tempo 4 = 40; }
-       \header{
-       opus= "" ; 
-       piece ="Sarabande"; }
-}
-
index eaf25ee969003b73514028d9df7cb0b5d814aea3..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,93 +0,0 @@
-% sarabande-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-sarabandeA =  \context Staff \notes \relative c {
-       \context Voice=i
-       \stemUp d8. e16 e4.-\trill d16 e |
-       f4. \stemBoth e8 d c |
-       [bes g'] f e16(f g a bes)d, |
-       cis4.-\trill b8 a g |
-       % copy bar 1, half bar 2
-       \stemUp d'8. e16 f4.-\trill d16 e |
-       %5
-       f4. \stemBoth d8 e f |
-       g bes16()a c()bes a()g d'8 f, |
-       \stemUp e4.-\trill \stemBoth d8 c bes |
-       %8
-       \stemUp f' g16()a a4. g16()f |
-       g8 a16()bes bes4. c16()d |
-       % 11
-       \stemBoth e,8 f c, g' f' e |
-       f4 f,2 |
-       \stemUp a'4 a4.-\trill bes8 |
-       c bes16 a \stemBoth fis8.-\trill es16 d8 c |
-       bes g' a, fis' es' d |
-       %16
-       \stemUp bes4.-\trill \stemBoth a8 g f! |
-       e bes a f' g a |
-       d, as g es' f g |
-       cis, bes' a g16 f e!8 f16 d |
-       cis8 e16 a a,8. g'16 f8()e |
-       %21
-       \stemUp d e16()f f4. e16()d |
-       e8 f16()g g4. a16()bes |
-       a8 cis16 d d,8 e16 f32 g f8-\trill e16()d |
-       d4 d,16 a'( b cis d e f )g |
-       %25
-       a(b c)b c4. b16()a |
-       b cis d cis d4. e16()f |
-       \stemBoth d(cis)d f,  a,8 e' d' cis |
-       d4 d,,2 |
-}
-
-sarabandeB =  \context Staff \notes \relative c {
-       \context Voice=ii
-       \stemDown
-% dispute
-%      d4 a2 |
-%      this avoids the clash bug
-       d8. s16 a2 |
-       <a4. d,> s8*3 |
-       s2.*2
-       %5
-%disp
-%      <a4 f> a2 |
-       <a8. f> s16 a2 |
-       <a4. d,> s8*3 |
-       s2. |
-       % 8
-       <g4. c,> s8*3 |
-       a4 <bes4. d> r8 |
-       %10
-       bes4 <g2 f'> |
-       s2.*2 |
-       f'8 es es4. r8 |
-       d4 s2 |
-       %15
-       s2. |
-       <d4. g,> s8*3 |
-       s2.*4 |
-       %21
-       bes4 g2 |
-       g4 <bes4. cis,> s8 |
-       <d8 a f> r r g, a4 |
-       s2. |
-       f'4 fis4. s8 |
-       <d4 g,> gis4. s8 |
-       s2.*2
-       \bar "|.";      
-}
-
-
-sarabande =  \context Staff \notes<
-       \sarabandeA
-       \sarabandeB
->
-
-\version "1.3.117";
index a797f9202786ca8c98bdca6bcd4ed2887d52aa77..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,33 +0,0 @@
-\version "1.3.117";
-
-\include "sarabande-urtext.ly";
-
-sarabandeViolaGlobal =  \notes{
-       \time 3/4;
-       \key f \major;
-       \clef alto;
-       \repeat "volta" 2 {
-               s2.*12
-       } \repeat "volta" 2 {
-               s2.*16
-       }
-}
-
-sarabandeViolaScripts =  \notes{
-}
-
-sarabandeViolaStaff =  \context Staff <
-       \notes \transpose c'' \sarabande
-       \sarabandeViolaGlobal
-       \sarabandeViolaScripts
->
-
-\score{
-       \sarabandeViolaStaff
-       \paper{ }
-       \midi{ \tempo 4 = 40; }
-       \header{
-       opus= "" ; 
-       piece ="Sarabande"; }
-}
-
index 12474c77663c1036ae066aa99729c70e95d15efa..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,4 +0,0 @@
-instr="cello"
-instrument="Violoncello"
-\include "solo-cello-suite-ii.ly"
-
index 09e45eabc88c9eaa1f9a68603c876f91c8a95e88..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,4 +0,0 @@
-instr="viola"
-instrument="Viola"
-\include "solo-cello-suite-ii.ly"
-
index 04f1bf6d1ffd97c393cdad3adb01cc3b7abbe43d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,21 +0,0 @@
-\include "header.ly"
-
-\paper {
-linewidth = 180.\mm;
-% \translator { \BarNumberingStaffContext }
-}
-
-% \include "prelude-" + \instr + ".ly";
-i = "prelude-" + \instr + ".ly"
-ii = "allemande-" + \instr + ".ly"
-iii = "courante-" + \instr + ".ly"
-iv = "sarabande-" + \instr + ".ly"
-v = "menuetto-" + \instr + ".ly"
-vi = "gigue-" + \instr + ".ly"
-
-\include \i
-\include \ii
-\include \iii
-\include \iv
-\include \v
-\include \vi
index 1b3186d56755605e05bad5fc0836c5f1e957664c..6c5bc7513eacb20cf5165fe53df2728ec701ddf6 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Lilypond 1.2.8\n"
-"POT-Creation-Date: 2001-03-06 12:36+0100\n"
+"POT-Creation-Date: 2001-03-21 16:06+0100\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"
@@ -13,117 +13,137 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: ENCODING\n"
 
-#: ly2dvi.py:67 main.cc:95 main.cc:109
+#: ly2dvi.py:86 main.cc:95 main.cc:105
 msgid "this help"
 msgstr "Diese Hilfe"
 
-#: ly2dvi.py:68
+#: ly2dvi.py:87
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:69
+#: ly2dvi.py:88
 #, fuzzy
 msgid "generate PostScript output"
 msgstr "Degenerierte Zwangsbedingungen"
 
-#: ly2dvi.py:70
+#: ly2dvi.py:89
 msgid "keep all output, and name the directory ly2dvi.dir"
 msgstr ""
 
-#: ly2dvi.py:71
+#: ly2dvi.py:90
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:72 main.cc:104 main.cc:119
+#: ly2dvi.py:91 main.cc:115
+#, fuzzy
+msgid "verbose"
+msgstr "Sei geschwätzig"
+
+#: ly2dvi.py:92 main.cc:104 main.cc:114
 msgid "print version number"
 msgstr "Zeige die Versionsnummer"
 
-#: ly2dvi.py:73 main.cc:106 main.cc:121
+#: ly2dvi.py:93 main.cc:106 main.cc:116
 msgid "show warranty and copyright"
 msgstr "Zeige Garantie und Urheberrechte"
 
-#: ly2dvi.py:74
+#: ly2dvi.py:94
 msgid "dump all final output into DIR"
 msgstr ""
 
-#: ly2dvi.py:75 main.cc:113
+#: ly2dvi.py:95 main.cc:109
 msgid "write Makefile dependencies for every input file"
 msgstr "Schreibe Makefile-Abhängigkeiten für jede Eingabedatei"
 
-#: ly2dvi.py:101
+#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23
+msgid "warning: "
+msgstr "Warnung: "
+
+#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17
+msgid "error: "
+msgstr "Fehler: "
+
+#: ly2dvi.py:130
 #, fuzzy
 msgid "Exiting ... "
 msgstr "Linie ... "
 
-#: ly2dvi.py:120
+#: ly2dvi.py:149
 #, fuzzy, c-format
-msgid "Reading `%s'"
+msgid "Reading %s..."
 msgstr "Uralt-Bitte: `%s'"
 
-#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111
+#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87
 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
 #, c-format
 msgid "can't open file: `%s'"
 msgstr "Kann die Datei %s nicht öffnen"
 
-#: ly2dvi.py:187
+#: ly2dvi.py:216
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "Verwendung: %s [OPTIONEN] ... [DATEI]"
 
-#: ly2dvi.py:189
+#: ly2dvi.py:218
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
-#: ly2dvi.py:191 main.cc:119 main.cc:151
+#: ly2dvi.py:220 main.cc:119 main.cc:146
 msgid "Options:"
 msgstr "Optionen:"
 
-#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23
-msgid "warning: "
-msgstr "Warnung: "
-
-#: ly2dvi.py:196
+#: ly2dvi.py:224
 msgid "all output is written in the CURRENT directory"
 msgstr ""
 
-#: ly2dvi.py:198 main.cc:123 main.cc:174
+#: ly2dvi.py:226 main.cc:123 main.cc:169
 #, fuzzy, c-format
 msgid "Report bugs to %s"
 msgstr "Melde Fehler an"
 
-#: ly2dvi.py:230
+#: ly2dvi.py:260
 #, fuzzy, c-format
 msgid "Invoking `%s'"
 msgstr "Uralt-Bitte: `%s'"
 
-#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17
-msgid "error: "
-msgstr "Fehler: "
-
-#: ly2dvi.py:234
+#: ly2dvi.py:263
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:236
+#: ly2dvi.py:265
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:277
+#: ly2dvi.py:301
+#, fuzzy, c-format
+msgid "no such setting: %s"
+msgstr "Kein solches instrument: `%s'"
+
+#: ly2dvi.py:309
 #, c-format
 msgid "Analyzing `%s'"
 msgstr ""
 
-#: ly2dvi.py:539 scores.cc:44
+#: ly2dvi.py:353
+#, c-format
+msgid "no lilypond output found for %s"
+msgstr ""
+
+#: ly2dvi.py:395
+#, fuzzy, c-format
+msgid "invalid value: %s"
+msgstr "Ungültiger Buchstabe `%c'"
+
+#: ly2dvi.py:602 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to %s..."
 msgstr "Ausgabe auf Papier auf %s..."
 
-#: ly2dvi.py:540
-#, c-format
-msgid "%s file left in `%s'"
-msgstr ""
+#: ly2dvi.py:603
+#, fuzzy, c-format
+msgid "%s output to %s..."
+msgstr "MIDI-Ausgabe nach %s..."
 
 #: data-file.cc:54
 msgid "EOF in a string"
@@ -232,12 +252,12 @@ msgstr "Kann die Schrift %s nicht finden, lade die Standardschrift."
 msgid "can't find default font: `%s'"
 msgstr "Kann Schrift `%s' nicht finden"
 
-#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137
+#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137
 #, c-format
 msgid "(search path: `%s')"
 msgstr "(Suchpfad: `%s')"
 
-#: all-font-metrics.cc:173 parser.yy:1663
+#: all-font-metrics.cc:173 parser.yy:1681
 msgid "Giving up"
 msgstr ""
 
@@ -317,7 +337,7 @@ msgstr "Unerlaubte Subtraktion: nicht Teil eines Akkords: %s"
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr "Unerlaubter Baßton: gehört nicht zum Akkord: %s"
 
-#: chord-tremolo-engraver.cc:141
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162
 #, fuzzy
 msgid "unterminated chord tremolo"
 msgstr "Unbeendeter Bindestrich"
@@ -327,7 +347,7 @@ msgstr "Unbeendeter Bindestrich"
 msgid "no one to print a tremolos"
 msgstr "Keiner darf eine Wiederholungsklammer drucken"
 
-#: collision.cc:116
+#: collision.cc:118
 msgid "Too many clashing notecolumns.  Ignoring them."
 msgstr "Zu viele aneinanderstoßende Notenspalten. Ich ignoriere sie."
 
@@ -360,7 +380,7 @@ msgstr "Habe schon einen Balken"
 msgid "already have a decrescendo"
 msgstr "Habe schon einen Balken"
 
-#: dynamic-engraver.cc:307
+#: dynamic-engraver.cc:318
 #, fuzzy
 msgid "unterminated (de)crescendo"
 msgstr "Nichtbeendetes Crescendo"
@@ -378,7 +398,7 @@ msgstr ""
 msgid "no one to print a repeat brace"
 msgstr "Keiner darf eine Wiederholungsklammer drucken"
 
-#: font-interface.cc:220
+#: font-interface.cc:237
 msgid "couldn't find any font satisfying "
 msgstr ""
 
@@ -414,7 +434,7 @@ msgstr "Unbeendeter Bindestrich"
 msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
 msgstr ""
 
-#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24
+#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24
 #: scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
@@ -451,90 +471,85 @@ msgstr ""
 msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:108
+#: main.cc:104
 msgid "EXT"
 msgstr "EXT"
 
-#: main.cc:108
+#: main.cc:104
 #, fuzzy
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr "Benutze das Ausgabeformat EXT"
 
-#: main.cc:110
+#: main.cc:106
 #, fuzzy
 msgid "FIELD"
 msgstr "DATEI"
 
-#: main.cc:110
+#: main.cc:106
 msgid "write header field to BASENAME.FIELD"
 msgstr ""
 
-#: main.cc:111 main.cc:114
+#: main.cc:107 main.cc:110
 msgid "DIR"
 msgstr "DIR"
 
-#: main.cc:111
+#: main.cc:107
 msgid "add DIR to search path"
 msgstr "Hänge DIR an den Suchpfad an"
 
-#: main.cc:98 main.cc:112
+#: main.cc:98 main.cc:108
 msgid "FILE"
 msgstr "DATEI"
 
-#: main.cc:112
+#: main.cc:108
 msgid "use FILE as init file"
 msgstr "Verwende FILE als Initialisierungsdatei"
 
-#: main.cc:114
+#: main.cc:110
 msgid "prepend DIR to dependencies"
 msgstr ""
 
-#: main.cc:115
+#: main.cc:111
 #, fuzzy
 msgid "produce MIDI output only"
 msgstr "Nur Midiausgabe"
 
-#: main.cc:116
+#: main.cc:112
 #, fuzzy
 msgid "NAME"
 msgstr "BASENAME"
 
-#: main.cc:116
+#: main.cc:112
 #, fuzzy
 msgid "write output to NAME"
 msgstr "Schreibe die Ausgabe in BASENAME[-x].Erweiterung"
 
-#: main.cc:117
+#: main.cc:113
 msgid "inhibit file output naming and exporting"
 msgstr "Unterdrücke die automatische Benennung von Ausgabedateien und Export"
 
-#: main.cc:103 main.cc:118
-msgid "don't timestamp the output"
-msgstr "Keine Datumsangabe auf der Ausgabe"
-
-#: main.cc:120
-#, fuzzy
-msgid "verbose"
-msgstr "Sei geschwätzig"
+#: main.cc:117
+msgid "EXPR"
+msgstr ""
 
-#: main.cc:122
-msgid "write midi ouput in formatted ascii"
+#: main.cc:117
+msgid "evalute EXPR as Scheme after .scm init is read"
 msgstr ""
 
 #.
 #. No version number or newline here. It confuses help2man
 #.
-#: main.cc:139
+#: main.cc:134
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Benutzung: %s [OPTIONEN] ... [DATEI] ..."
 
-#: main.cc:141
+#: main.cc:136
 #, fuzzy
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "Setze Musik oder spiele MIDI von DATEI"
 
-#: main.cc:145
+#: main.cc:140
 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"
@@ -544,11 +559,11 @@ msgstr ""
 "Notenblätter erzeugen. Dazu verwendet es eine eigene Beschreibungssprache.\n"
 "lilyPond ist Teil des GNU-Projekts\n"
 
-#: main.cc:155
+#: main.cc:150
 msgid "This binary was compiled with the following options:"
 msgstr "Diese Programm wurde mit den folgenden Optionen übersetzt:"
 
-#: main.cc:55 main.cc:182
+#: main.cc:55 main.cc:177
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -561,17 +576,17 @@ msgstr ""
 "einhalten. Wenn Sie das Programm mit `%s --warranty starten, bekommen\n"
 "Sie mehr Informationen.\n"
 
-#: main.cc:62 main.cc:189 main.cc:201
+#: main.cc:62 main.cc:184 main.cc:196
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Urheberrechte (Copyright) (c) %s bei"
 
-#: main.cc:199
+#: main.cc:194
 #, fuzzy
 msgid "GNU LilyPond -- The music typesetter"
 msgstr "GNU LilyPond -- Der Notensatz des GNU-Projekts"
 
-#: main.cc:71 main.cc:207
+#: main.cc:71 main.cc:202
 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"
@@ -619,29 +634,37 @@ msgstr "unsinnige Tonh
 msgid "Transposition by %s makes accidental larger than two"
 msgstr "Transponieren um %s macht Vorzecihen größer als zwei"
 
-#: music.cc:222
+#: music.cc:224
 msgid "ly_get_mus_property (): Not a Music"
 msgstr ""
 
-#: music.cc:236
+#: music.cc:238
 msgid "ly_set_mus_property (): Not a symbol"
 msgstr ""
 
-#: music.cc:248
+#: music.cc:250
 msgid "ly_set_mus_property ():  not of type Music"
 msgstr ""
 
+#: music.cc:264
+msgid "ly_make_music (): Not a string"
+msgstr ""
+
+#: music.cc:284
+msgid "ly_music_name (): Not a music expression"
+msgstr ""
+
 #: music-output-def.cc:115
 #, fuzzy, c-format
 msgid "can't find `%s' context"
 msgstr "Kann Partiturkontext nicht finden"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:138
 #, fuzzy, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "name ist ein Schlüsselbegriff (keyword) (`%s')"
 
-#: my-lily-lexer.cc:157
+#: my-lily-lexer.cc:158
 #, c-format
 msgid "error at EOF: %s"
 msgstr "Fehler am Dateiende(EOF): %s"
@@ -650,7 +673,7 @@ msgstr "Fehler am Dateiende(EOF): %s"
 msgid "Parsing..."
 msgstr "Verarbeite..."
 
-#: my-lily-parser.cc:55
+#: my-lily-parser.cc:57
 #, fuzzy
 msgid "Braces don't match"
 msgstr "Klammern passen nicht zusammen"
@@ -665,11 +688,11 @@ msgstr "Uralt-Bitte: `%s'"
 msgid "paper output to %s..."
 msgstr "Ausgabe auf Papier auf %s..."
 
-#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95
 msgid ", at "
 msgstr ", bei "
 
-#: paper-outputter.cc:245
+#: paper-outputter.cc:232
 #, fuzzy, c-format
 msgid "writing header field %s to %s..."
 msgstr "Schreibe Datei mit Abhängigkeiten: `%s'..."
@@ -678,7 +701,7 @@ msgstr "Schreibe Datei mit Abh
 msgid "Preprocessing elements..."
 msgstr "Verarbeite Element vor..."
 
-#: paper-score.cc:113
+#: paper-score.cc:114
 #, fuzzy
 msgid "Outputting Score, defined at: "
 msgstr "Gebe Partitur aus, definiert bei: "
@@ -709,6 +732,16 @@ msgstr ""
 msgid "none of these in my family: `%s'"
 msgstr ""
 
+#: percent-repeat-engraver.cc:108
+#, fuzzy
+msgid "Don't know yet how to handle this percent repeat."
+msgstr "Weiß nicht, wie ich eine fehlende Tonart behandeln soll"
+
+#: percent-repeat-iterator.cc:53
+#, fuzzy
+msgid "no one to print a percent"
+msgstr "Keiner darf eine Wiederholungsklammer drucken"
+
 #: performance.cc:51
 msgid "Track ... "
 msgstr "Stück ... "
@@ -717,12 +750,12 @@ msgstr "St
 msgid "Creator: "
 msgstr "Erstellt von: "
 
-#: performance.cc:116
+#: performance.cc:109
 #, c-format
 msgid "from musical definition: %s"
 msgstr "von der musiaklischen Definition: %s"
 
-#: performance.cc:171
+#: performance.cc:164
 #, c-format
 msgid "MIDI output to %s..."
 msgstr "MIDI-Ausgabe nach %s..."
@@ -789,7 +822,7 @@ msgstr "Habe Fehler gefunden, /* die Partitur wird nicht verarbeitet */"
 msgid "elapsed time: %.2f seconds"
 msgstr "verstrichene Zeit %.2f Sekunden"
 
-#: score-engraver.cc:177
+#: score-engraver.cc:183
 #, fuzzy, c-format
 msgid "unbound spanner `%s'"
 msgstr "Unbeschränkter Abstand `%s'"
@@ -828,7 +861,9 @@ msgstr "Bindebogen 
 msgid "unterminated slur"
 msgstr "Unbeendeter Bindebogen"
 
-#: slur-engraver.cc:142
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start request?
+#: slur-engraver.cc:144
 #, fuzzy
 msgid "can't find start of slur"
 msgstr "Kann nicht beide Enden von %s finden"
@@ -868,21 +903,23 @@ msgstr "Unbeendete Linienfortf
 msgid "can't find ascii character: %d"
 msgstr "Kann ASCII-Zeichen `%d' nicht finden"
 
-#: tfm-reader.cc:105
-#, c-format
-msgid "TFM header of `%s' has only %u word(s)"
+#: tfm-reader.cc:106
+#, fuzzy, c-format
+msgid "TFM header of `%s' has only %u word (s)"
 msgstr "TFM header von `%s' hat nur %u Wort(e)"
 
-#: tfm-reader.cc:139
+#: tfm-reader.cc:140
 #, fuzzy, c-format
 msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
 msgstr "%s: TFM-Datei hat %u Parameter. Das ist mehr als die"
 
-#: tie-engraver.cc:211 tie-performer.cc:173
+#. How to shut up this warning, when no notes appeared because
+#. they were suicided by Thread_devnull_engraver?
+#: tie-engraver.cc:215 tie-performer.cc:173
 msgid "No ties were created!"
 msgstr "Es wurden keine Haltebögen erzeugt!"
 
-#: tie-engraver.cc:230
+#: tie-engraver.cc:234
 msgid "lonely tie"
 msgstr "Einsamer Haltebogen"
 
@@ -901,21 +938,21 @@ msgstr "
 msgid "unknown translator: `%s'"
 msgstr "unbekannter Übersetzer `%s'"
 
-#: translator-def.cc:96
+#: translator-def.cc:99
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-def.cc:102
+#: translator-def.cc:105
 #, fuzzy, c-format
 msgid "Already contains: `%s'"
 msgstr "Enthält schon ein `%s'"
 
-#: translator-def.cc:103
+#: translator-def.cc:106
 #, fuzzy, c-format
 msgid "Not adding translator: `%s'"
 msgstr "unbekannter Übersetzer `%s'"
 
-#: translator-def.cc:215
+#: translator-def.cc:224
 #, fuzzy, c-format
 msgid "can't find: `%s'"
 msgstr "Kann `%s' nicht finden"
@@ -930,19 +967,19 @@ msgstr "Kann ein `%s', genannt `%s' weder finden noch erzeugen"
 msgid "can't find or create: `%s'"
 msgstr "Kann ein `%s' weder finden noch erzeugen"
 
-#: translator-group.cc:403
+#: translator-group.cc:414
 #, c-format
 msgid ""
 "Can't find property type-check for `%s'.  Perhaps you made a typing error?"
 msgstr ""
 
-#: translator-group.cc:417
+#: translator-group.cc:428
 #, c-format
 msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
 
 #. programming_error?
-#: translator-group.cc:436
+#: translator-group.cc:447
 msgid "ly-get-trans-property: expecting a Translator_group argument"
 msgstr ""
 
@@ -963,119 +1000,191 @@ msgstr ""
 msgid "Oldest supported input version: %s"
 msgstr "Älteste noch unterstütze Version der Eingabe: %s"
 
-#: parser.yy:471
+#: parser.yy:473
 msgid "Wrong type for property value"
 msgstr "Falsche Type für Besitz-Wert"
 
-#: parser.yy:666
+#: parser.yy:672
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:730
+#: parser.yy:736
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:735
+#: parser.yy:741
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1211
+#: parser.yy:1236
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1221
+#: parser.yy:1246
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1353
+#: parser.yy:1371
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1364
+#: parser.yy:1382
 #, fuzzy
 msgid "Must have duration object"
 msgstr "Setze kürzeste Dauer (?)"
 
-#: parser.yy:1373 parser.yy:1381 parser.yy:1661
+#: parser.yy:1391 parser.yy:1399 parser.yy:1679
 #, fuzzy
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "Um Text zu verarbeiten, muß ich im Text-(Lyrics)-Modus sein"
 
-#: parser.yy:1546 parser.yy:1575
+#: parser.yy:1564 parser.yy:1593
 #, c-format
 msgid "not a duration: %d"
 msgstr "Keine Dauer: %d"
 
-#: parser.yy:1584
+#: parser.yy:1602
 #, fuzzy
 msgid "Have to be in Note mode for notes"
 msgstr "Für Noten muß ich im Noten-(Note)-Modus sein"
 
-#: parser.yy:1680
+#: parser.yy:1698
 #, fuzzy
 msgid "Have to be in Chord mode for chords"
 msgstr "Für Akkorde muß ich im Akkord-(Chord)-Modus sein"
 
-#: parser.yy:1842 parser.yy:1860
+#: parser.yy:1860 parser.yy:1878
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1846
+#: parser.yy:1864
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:165
+#: lexer.ll:166
 msgid "EOF found inside a comment"
 msgstr "Während eines Kommentar war die Datei zu Ende (EOF gefunden)"
 
-#: lexer.ll:179
+#: lexer.ll:180
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:203
+#: lexer.ll:204
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "Unbekannter Identifier: `%s'"
 
 #. backup rule
-#: lexer.ll:208
+#: lexer.ll:209
 #, fuzzy
 msgid "Missing end quote"
 msgstr "Endnote fehlt"
 
 #. backup rule
-#: lexer.ll:230 lexer.ll:234
+#: lexer.ll:231 lexer.ll:235
 msgid "white expected"
 msgstr "Erwarte Weiß"
 
-#: lexer.ll:243
+#: lexer.ll:244
 #, fuzzy
 msgid "Can't evaluate Scheme in safe mode"
 msgstr "Kann Scheme nicht interpretieren, wenn ich im sicheren Modus bin"
 
-#: lexer.ll:335
+#: lexer.ll:336
 msgid "Brace found at end of lyric. Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:439
+#: lexer.ll:440
 #, c-format
 msgid "invalid character: `%c'"
 msgstr "Ungültiger Buchstabe `%c'"
 
-#: lexer.ll:520
+#: lexer.ll:521
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "Unbekannte Sonder-Zeichenkette"
 
-#: lexer.ll:602
+#: lexer.ll:603
 #, fuzzy, c-format
 msgid "incorrect lilypond version: %s (%s, %s)"
-msgstr "Falsche Version von Mudela: (s /%s, %s)"
+msgstr "Falsche Version von Lilypond: %s (%s, %s)"
 
-#: lexer.ll:603
+#: lexer.ll:604
 msgid "Consider converting the input with the convert-ly script"
 msgstr ""
 
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr "#32 in Vierteln: %d"
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "Lily output to %s..."
+msgstr "Lily-Ausgabe nach %s..."
+
+#: lilypond-score.cc:119
+#, fuzzy, c-format
+msgid "track %d:"
+msgstr "Spur "
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "Verarbeite..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "Erzeuge Stimmen..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "Spur "
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "Ich filtere das Tempo NICHT..."
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "ich quantifiziere die Spalten NICHT..."
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr "Quantifiziere Spalten..."
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr "Erledige Spalten..."
+
+#: lilypond-staff.cc:209
+#, fuzzy
+msgid "% MIDI copyright:"
+msgstr "% Midi Urheberrecht:"
+
+#: lilypond-staff.cc:210
+#, fuzzy
+msgid "% MIDI instrument:"
+msgstr "% Instrument:"
+
+#: lilypond-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr "lily Einrücklevel: %d"
+
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "% erstellt von: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% Automatisch generiert"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% aus Eingabedatei: "
+
 #: main.cc:93
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr "Schreibe genaue Dauer, z.B.: a4*385/384"
@@ -1124,6 +1233,10 @@ msgstr "DUR"
 msgid "set smallest duration"
 msgstr "Setze kürzeste Dauer (?)"
 
+#: main.cc:103
+msgid "don't timestamp the output"
+msgstr "Keine Datumsangabe auf der Ausgabe"
+
 #: main.cc:105
 msgid "be verbose"
 msgstr "Sei geschwätzig"
@@ -1139,8 +1252,8 @@ msgstr "Verwendung: %s [OPTIONEN] ... [DATEI]"
 
 #: main.cc:116
 #, fuzzy
-msgid "Translate MIDI-file to mudela"
-msgstr "Übersetze MIDI in mudela"
+msgid "Translate MIDI-file to lilypond"
+msgstr "Übersetze MIDI in Lilypond"
 
 #: main.cc:130
 #, c-format
@@ -1220,78 +1333,6 @@ msgstr "Erwarte MIDI-St
 msgid "invalid track length"
 msgstr "Unzulässige Länge für ein Stück"
 
-#: mudela-item.cc:161
-#, c-format
-msgid "#32 in quarter: %d"
-msgstr "#32 in Vierteln: %d"
-
-#: mudela-score.cc:108
-#, c-format
-msgid "Lily output to %s..."
-msgstr "Lily-Ausgabe nach %s..."
-
-#: mudela-score.cc:119
-#, fuzzy, c-format
-msgid "track %d:"
-msgstr "Spur "
-
-#: mudela-score.cc:155
-msgid "Processing..."
-msgstr "Verarbeite..."
-
-#: mudela-score.cc:164
-msgid "Creating voices..."
-msgstr "Erzeuge Stimmen..."
-
-#: mudela-score.cc:168
-msgid "track "
-msgstr "Spur "
-
-#: mudela-score.cc:177
-msgid "NOT Filtering tempo..."
-msgstr "Ich filtere das Tempo NICHT..."
-
-#: mudela-score.cc:186
-msgid "NOT Quantifying columns..."
-msgstr "ich quantifiziere die Spalten NICHT..."
-
-#: mudela-score.cc:190
-msgid "Quantifying columns..."
-msgstr "Quantifiziere Spalten..."
-
-#: mudela-score.cc:223
-msgid "Settling columns..."
-msgstr "Erledige Spalten..."
-
-#: mudela-staff.cc:209
-#, fuzzy
-msgid "% MIDI copyright:"
-msgstr "% Midi Urheberrecht:"
-
-#: mudela-staff.cc:210
-#, fuzzy
-msgid "% MIDI instrument:"
-msgstr "% Instrument:"
-
-#: mudela-stream.cc:37
-#, c-format
-msgid "lily indent level: %d"
-msgstr "lily Einrücklevel: %d"
-
-#. Maybe better not to translate these?
-#: mudela-stream.cc:83
-msgid "% Creator: "
-msgstr "% erstellt von: "
-
-#: mudela-stream.cc:88
-msgid "% Automatically generated"
-msgstr "% Automatisch generiert"
-
-#: mudela-stream.cc:97
-#, c-format
-msgid "% from input file: "
-msgstr "% aus Eingabedatei: "
-
 #, fuzzy
 #~ msgid "Dependency file left in `%s'"
 #~ msgstr "Schreibe Datei mit Abhängigkeiten: `%s'..."
@@ -1374,10 +1415,6 @@ msgstr "% aus Eingabedatei: "
 #~ msgid "No key name, assuming `C'"
 #~ msgstr "Keine Tonart: ich nehme `C' an"
 
-#, fuzzy
-#~ msgid "Don't know how handle empty keys"
-#~ msgstr "Weiß nicht, wie ich eine fehlende Tonart behandeln soll"
-
 #, fuzzy
 #~ msgid "out of tune:"
 #~ msgstr "Verstimmt"
index 421acc6ad05ed75f26c6f5939694fd01b938abcc..71bc705d07c210f20b2f7694d2d195c5f5eb92a1 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 1.3.18\n"
-"POT-Creation-Date: 2001-03-06 12:36+0100\n"
+"POT-Creation-Date: 2001-03-21 16:06+0100\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:67 main.cc:95 main.cc:109
+#: ly2dvi.py:86 main.cc:95 main.cc:105
 msgid "this help"
 msgstr "cette aide"
 
-#: ly2dvi.py:68
+#: ly2dvi.py:87
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:69
+#: ly2dvi.py:88
 msgid "generate PostScript output"
 msgstr ""
 
-#: ly2dvi.py:70
+#: ly2dvi.py:89
 msgid "keep all output, and name the directory ly2dvi.dir"
 msgstr ""
 
-#: ly2dvi.py:71
+#: ly2dvi.py:90
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:72 main.cc:104 main.cc:119
+#: ly2dvi.py:91 main.cc:115
+msgid "verbose"
+msgstr ""
+
+#: ly2dvi.py:92 main.cc:104 main.cc:114
 msgid "print version number"
 msgstr "afficher le numéro de version"
 
-#: ly2dvi.py:73 main.cc:106 main.cc:121
+#: ly2dvi.py:93 main.cc:106 main.cc:116
 msgid "show warranty and copyright"
 msgstr ""
 
-#: ly2dvi.py:74
+#: ly2dvi.py:94
 msgid "dump all final output into DIR"
 msgstr ""
 
-#: ly2dvi.py:75 main.cc:113
+#: ly2dvi.py:95 main.cc:109
 msgid "write Makefile dependencies for every input file"
 msgstr ""
 
-#: ly2dvi.py:101
+#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23
+msgid "warning: "
+msgstr "avertissement: "
+
+#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17
+msgid "error: "
+msgstr "erreur: "
+
+#: ly2dvi.py:130
 #, fuzzy
 msgid "Exiting ... "
 msgstr "Ligne ..."
 
-#: ly2dvi.py:120
-#, c-format
-msgid "Reading `%s'"
-msgstr ""
+#: ly2dvi.py:149
+#, fuzzy, c-format
+msgid "Reading %s..."
+msgstr "Création des voix..."
 
-#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111
+#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87
 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
 #, c-format
 msgid "can't open file: `%s'"
 msgstr "impossible d'ouvrir le fichier: `%s'"
 
-#: ly2dvi.py:187
+#: ly2dvi.py:216
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "Usage: %s [OPTION... [FICHIER]"
 
-#: ly2dvi.py:189
+#: ly2dvi.py:218
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
-#: ly2dvi.py:191 main.cc:119 main.cc:151
+#: ly2dvi.py:220 main.cc:119 main.cc:146
 msgid "Options:"
 msgstr "Options: "
 
-#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23
-msgid "warning: "
-msgstr "avertissement: "
-
-#: ly2dvi.py:196
+#: ly2dvi.py:224
 msgid "all output is written in the CURRENT directory"
 msgstr ""
 
-#: ly2dvi.py:198 main.cc:123 main.cc:174
+#: ly2dvi.py:226 main.cc:123 main.cc:169
 #, fuzzy, c-format
 msgid "Report bugs to %s"
 msgstr "Rapporter les bugs à"
 
-#: ly2dvi.py:230
+#: ly2dvi.py:260
 #, c-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17
-msgid "error: "
-msgstr "erreur: "
-
-#: ly2dvi.py:234
+#: ly2dvi.py:263
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:236
+#: ly2dvi.py:265
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:277
+#: ly2dvi.py:301
+#, fuzzy, c-format
+msgid "no such setting: %s"
+msgstr "Pas d'instrument tel: `%s'"
+
+#: ly2dvi.py:309
 #, c-format
 msgid "Analyzing `%s'"
 msgstr ""
 
-#: ly2dvi.py:539 scores.cc:44
+#: ly2dvi.py:353
+#, c-format
+msgid "no lilypond output found for %s"
+msgstr ""
+
+#: ly2dvi.py:395
+#, fuzzy, c-format
+msgid "invalid value: %s"
+msgstr "caractères illégal: `%c'"
+
+#: ly2dvi.py:602 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to %s..."
 msgstr "Sortie papier vers %s..."
 
-#: ly2dvi.py:540
-#, c-format
-msgid "%s file left in `%s'"
-msgstr ""
+#: ly2dvi.py:603
+#, fuzzy, c-format
+msgid "%s output to %s..."
+msgstr "Sortie de Lily vers %s..."
 
 #: data-file.cc:54
 #, fuzzy
@@ -231,12 +250,12 @@ msgstr "Impossible de trouver la police `%s', chargement la police par d
 msgid "can't find default font: `%s'"
 msgstr "Impossible de trouver la fonte par défaut `%s', abandon."
 
-#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137
+#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137
 #, fuzzy, c-format
 msgid "(search path: `%s')"
 msgstr "chemin de recherche= %s"
 
-#: all-font-metrics.cc:173 parser.yy:1663
+#: all-font-metrics.cc:173 parser.yy:1681
 msgid "Giving up"
 msgstr ""
 
@@ -316,7 +335,7 @@ msgstr "soustraction invalide: ne fait pas partie de l'accord: %s"
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr "renversement invalide: ne fait pas partie de l'accord: %s"
 
-#: chord-tremolo-engraver.cc:141
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162
 msgid "unterminated chord tremolo"
 msgstr ""
 
@@ -324,7 +343,7 @@ msgstr ""
 msgid "no one to print a tremolos"
 msgstr ""
 
-#: collision.cc:116
+#: collision.cc:118
 #, fuzzy
 msgid "Too many clashing notecolumns.  Ignoring them."
 msgstr "Trop de colonnes de notes superposées. Je les ignore."
@@ -358,7 +377,7 @@ msgstr "Il y a d
 msgid "already have a decrescendo"
 msgstr "Il y a déjà une barre"
 
-#: dynamic-engraver.cc:307
+#: dynamic-engraver.cc:318
 #, fuzzy
 msgid "unterminated (de)crescendo"
 msgstr "crescendo non terminé"
@@ -375,7 +394,7 @@ msgstr ""
 msgid "no one to print a repeat brace"
 msgstr ""
 
-#: font-interface.cc:220
+#: font-interface.cc:237
 msgid "couldn't find any font satisfying "
 msgstr ""
 
@@ -409,7 +428,7 @@ msgstr ""
 msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
 msgstr ""
 
-#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24
+#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24
 #: scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
@@ -446,87 +465,83 @@ msgstr ""
 msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:108
+#: main.cc:104
 msgid "EXT"
 msgstr ""
 
-#: main.cc:108
+#: main.cc:104
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr ""
 
-#: main.cc:110
+#: main.cc:106
 #, fuzzy
 msgid "FIELD"
 msgstr "FICHIER"
 
-#: main.cc:110
+#: main.cc:106
 msgid "write header field to BASENAME.FIELD"
 msgstr ""
 
-#: main.cc:111 main.cc:114
+#: main.cc:107 main.cc:110
 msgid "DIR"
 msgstr "REP"
 
-#: main.cc:111
+#: main.cc:107
 #, fuzzy
 msgid "add DIR to search path"
 msgstr "ajoute REP au chemin de recherche"
 
-#: main.cc:98 main.cc:112
+#: main.cc:98 main.cc:108
 msgid "FILE"
 msgstr "FICHIER"
 
-#: main.cc:112
+#: main.cc:108
 #, fuzzy
 msgid "use FILE as init file"
 msgstr "utilise FICHIER comme fichier d'initialisation"
 
-#: main.cc:114
+#: main.cc:110
 msgid "prepend DIR to dependencies"
 msgstr ""
 
-#: main.cc:115
+#: main.cc:111
 #, fuzzy
 msgid "produce MIDI output only"
 msgstr "produit seulement la sortie MIDI"
 
-#: main.cc:116
+#: main.cc:112
 msgid "NAME"
 msgstr ""
 
-#: main.cc:116
+#: main.cc:112
 msgid "write output to NAME"
 msgstr ""
 
-#: main.cc:117
+#: main.cc:113
 msgid "inhibit file output naming and exporting"
 msgstr ""
 
-#: main.cc:103 main.cc:118
-msgid "don't timestamp the output"
-msgstr ""
-
-#: main.cc:120
-msgid "verbose"
+#: main.cc:117
+msgid "EXPR"
 msgstr ""
 
-#: main.cc:122
-msgid "write midi ouput in formatted ascii"
+#: main.cc:117
+msgid "evalute EXPR as Scheme after .scm init is read"
 msgstr ""
 
 #.
 #. No version number or newline here. It confuses help2man
 #.
-#: main.cc:139
+#: main.cc:134
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Usage: %s [OPTION]... [FICHIER]..."
 
-#: main.cc:141
+#: main.cc:136
 msgid "Typeset music and or play MIDI from FILE"
 msgstr ""
 
-#: main.cc:145
+#: main.cc:140
 #, fuzzy
 msgid ""
 "LilyPond is a music typesetter.  It produces beautiful sheet music\n"
@@ -537,12 +552,12 @@ msgstr ""
 "paritions à partir de description de gaut niveau en entrée. Lilypond\n"
 "fait partie du projet GNU.\n"
 
-#: main.cc:155
+#: main.cc:150
 #, fuzzy
 msgid "This binary was compiled with the following options:"
 msgstr "Cet exécutable a été compilé avec les options suivantes:"
 
-#: main.cc:55 main.cc:182
+#: main.cc:55 main.cc:177
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -550,17 +565,17 @@ msgid ""
 "certain conditions.  Invoke as `%s --warranty' for more information.\n"
 msgstr ""
 
-#: main.cc:62 main.cc:189 main.cc:201
+#: main.cc:62 main.cc:184 main.cc:196
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s par"
 
-#: main.cc:199
+#: main.cc:194
 #, fuzzy
 msgid "GNU LilyPond -- The music typesetter"
 msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU"
 
-#: main.cc:71 main.cc:207
+#: main.cc:71 main.cc:202
 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"
@@ -595,29 +610,37 @@ msgstr ""
 msgid "Transposition by %s makes accidental larger than two"
 msgstr ""
 
-#: music.cc:222
+#: music.cc:224
 msgid "ly_get_mus_property (): Not a Music"
 msgstr ""
 
-#: music.cc:236
+#: music.cc:238
 msgid "ly_set_mus_property (): Not a symbol"
 msgstr ""
 
-#: music.cc:248
+#: music.cc:250
 msgid "ly_set_mus_property ():  not of type Music"
 msgstr ""
 
+#: music.cc:264
+msgid "ly_make_music (): Not a string"
+msgstr ""
+
+#: music.cc:284
+msgid "ly_music_name (): Not a music expression"
+msgstr ""
+
 #: music-output-def.cc:115
 #, fuzzy, c-format
 msgid "can't find `%s' context"
 msgstr "ne peut pas trouver `%s'"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:138
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr ""
 
-#: my-lily-lexer.cc:157
+#: my-lily-lexer.cc:158
 #, c-format
 msgid "error at EOF: %s"
 msgstr ""
@@ -626,7 +649,7 @@ msgstr ""
 msgid "Parsing..."
 msgstr "Analyse..."
 
-#: my-lily-parser.cc:55
+#: my-lily-parser.cc:57
 msgid "Braces don't match"
 msgstr ""
 
@@ -640,11 +663,11 @@ msgstr ""
 msgid "paper output to %s..."
 msgstr "Sortie papier vers %s..."
 
-#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95
 msgid ", at "
 msgstr ", à "
 
-#: paper-outputter.cc:245
+#: paper-outputter.cc:232
 #, fuzzy, c-format
 msgid "writing header field %s to %s..."
 msgstr "impossible d'ouvrir le fichier: `%s'"
@@ -653,7 +676,7 @@ msgstr "impossible d'ouvrir le fichier: `%s'"
 msgid "Preprocessing elements..."
 msgstr ""
 
-#: paper-score.cc:113
+#: paper-score.cc:114
 msgid "Outputting Score, defined at: "
 msgstr ""
 
@@ -683,6 +706,15 @@ msgstr ""
 msgid "none of these in my family: `%s'"
 msgstr ""
 
+#: percent-repeat-engraver.cc:108
+#, fuzzy
+msgid "Don't know yet how to handle this percent repeat."
+msgstr "ne sait pas traiter les clés vides"
+
+#: percent-repeat-iterator.cc:53
+msgid "no one to print a percent"
+msgstr ""
+
 #: performance.cc:51
 #, fuzzy
 msgid "Track ... "
@@ -692,12 +724,12 @@ msgstr "Piste ... "
 msgid "Creator: "
 msgstr "Auteur: "
 
-#: performance.cc:116
+#: performance.cc:109
 #, c-format
 msgid "from musical definition: %s"
 msgstr ""
 
-#: performance.cc:171
+#: performance.cc:164
 #, c-format
 msgid "MIDI output to %s..."
 msgstr ""
@@ -760,7 +792,7 @@ msgstr ""
 msgid "elapsed time: %.2f seconds"
 msgstr "temps ecoulé: %.2f secondes"
 
-#: score-engraver.cc:177
+#: score-engraver.cc:183
 #, fuzzy, c-format
 msgid "unbound spanner `%s'"
 msgstr "traducteur inconnu `%s'"
@@ -796,7 +828,9 @@ msgstr ""
 msgid "unterminated slur"
 msgstr ""
 
-#: slur-engraver.cc:142
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start request?
+#: slur-engraver.cc:144
 #, fuzzy
 msgid "can't find start of slur"
 msgstr "impossible de trouver le caractères numéro %d"
@@ -835,21 +869,23 @@ msgstr "Barre non termin
 msgid "can't find ascii character: %d"
 msgstr "ne peut pas trouver le caractère ascii `%d'"
 
-#: tfm-reader.cc:105
+#: tfm-reader.cc:106
 #, c-format
-msgid "TFM header of `%s' has only %u word(s)"
+msgid "TFM header of `%s' has only %u word (s)"
 msgstr ""
 
-#: tfm-reader.cc:139
+#: tfm-reader.cc:140
 #, c-format
 msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
 msgstr ""
 
-#: tie-engraver.cc:211 tie-performer.cc:173
+#. How to shut up this warning, when no notes appeared because
+#. they were suicided by Thread_devnull_engraver?
+#: tie-engraver.cc:215 tie-performer.cc:173
 msgid "No ties were created!"
 msgstr "Aucune liaison n'a été crée"
 
-#: tie-engraver.cc:230
+#: tie-engraver.cc:234
 msgid "lonely tie"
 msgstr "liaison solitaire"
 
@@ -867,21 +903,21 @@ msgstr ""
 msgid "unknown translator: `%s'"
 msgstr "traducteur inconnu `%s'"
 
-#: translator-def.cc:96
+#: translator-def.cc:99
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-def.cc:102
+#: translator-def.cc:105
 #, fuzzy, c-format
 msgid "Already contains: `%s'"
 msgstr "Contient déjà un `%s'"
 
-#: translator-def.cc:103
+#: translator-def.cc:106
 #, fuzzy, c-format
 msgid "Not adding translator: `%s'"
 msgstr "traducteur inconnu `%s'"
 
-#: translator-def.cc:215
+#: translator-def.cc:224
 #, fuzzy, c-format
 msgid "can't find: `%s'"
 msgstr "ne peut pas trouver `%s'"
@@ -896,19 +932,19 @@ msgstr "ne peut pas trouver ou cr
 msgid "can't find or create: `%s'"
 msgstr "ne peut pas trouver ou créer `%s'"
 
-#: translator-group.cc:403
+#: translator-group.cc:414
 #, c-format
 msgid ""
 "Can't find property type-check for `%s'.  Perhaps you made a typing error?"
 msgstr ""
 
-#: translator-group.cc:417
+#: translator-group.cc:428
 #, c-format
 msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
 
 #. programming_error?
-#: translator-group.cc:436
+#: translator-group.cc:447
 msgid "ly-get-trans-property: expecting a Translator_group argument"
 msgstr ""
 
@@ -929,117 +965,188 @@ msgstr ""
 msgid "Oldest supported input version: %s"
 msgstr "Plus ancienne version supportée: %s"
 
-#: parser.yy:471
+#: parser.yy:473
 msgid "Wrong type for property value"
 msgstr "Mauvais type pour la valeur de la propriété"
 
-#: parser.yy:666
+#: parser.yy:672
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:730
+#: parser.yy:736
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:735
+#: parser.yy:741
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1211
+#: parser.yy:1236
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1221
+#: parser.yy:1246
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1353
+#: parser.yy:1371
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1364
+#: parser.yy:1382
 #, fuzzy
 msgid "Must have duration object"
 msgstr "Positionne la plus petite durée (?)"
 
-#: parser.yy:1373 parser.yy:1381 parser.yy:1661
+#: parser.yy:1391 parser.yy:1399 parser.yy:1679
 #, fuzzy
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "il fayt être en mode Parole pour les paroles"
 
-#: parser.yy:1546 parser.yy:1575
+#: parser.yy:1564 parser.yy:1593
 #, c-format
 msgid "not a duration: %d"
 msgstr "pas une durée: %d"
 
-#: parser.yy:1584
+#: parser.yy:1602
 #, fuzzy
 msgid "Have to be in Note mode for notes"
 msgstr "il faut être en mode Note pour les notes"
 
-#: parser.yy:1680
+#: parser.yy:1698
 #, fuzzy
 msgid "Have to be in Chord mode for chords"
 msgstr "il faut être en mode Accord pour les accords"
 
-#: parser.yy:1842 parser.yy:1860
+#: parser.yy:1860 parser.yy:1878
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1846
+#: parser.yy:1864
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:165
+#: lexer.ll:166
 msgid "EOF found inside a comment"
 msgstr "EOF trouvé dans un commentaire"
 
-#: lexer.ll:179
+#: lexer.ll:180
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:203
+#: lexer.ll:204
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "indentifiant non défini: `%s'"
 
 #. backup rule
-#: lexer.ll:208
+#: lexer.ll:209
 msgid "Missing end quote"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:230 lexer.ll:234
+#: lexer.ll:231 lexer.ll:235
 msgid "white expected"
 msgstr "blanche attendue"
 
-#: lexer.ll:243
+#: lexer.ll:244
 msgid "Can't evaluate Scheme in safe mode"
 msgstr ""
 
-#: lexer.ll:335
+#: lexer.ll:336
 msgid "Brace found at end of lyric. Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:439
+#: lexer.ll:440
 #, fuzzy, c-format
 msgid "invalid character: `%c'"
 msgstr "caractères illégal: `%c'"
 
-#: lexer.ll:520
+#: lexer.ll:521
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "chaîne d'échappement inconnue: `\\%s'"
 
-#: lexer.ll:602
+#: lexer.ll:603
 #, fuzzy, c-format
 msgid "incorrect lilypond version: %s (%s, %s)"
 msgstr "version de mudela incorrecte: %s (%s, %s)"
 
-#: lexer.ll:603
+#: lexer.ll:604
 msgid "Consider converting the input with the convert-ly script"
 msgstr ""
 
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr ""
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "Lily output to %s..."
+msgstr "Sortie de Lily vers %s..."
+
+#: lilypond-score.cc:119
+#, fuzzy, c-format
+msgid "track %d:"
+msgstr "piste "
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "Traitement..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "Création des voix..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "piste "
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "PAS de filtrage du tempo..."
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "PAS de quantification des colonnes..."
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr "Quantification des colonnes..."
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr ""
+
+#: lilypond-staff.cc:209
+msgid "% MIDI copyright:"
+msgstr ""
+
+#: lilypond-staff.cc:210
+#, fuzzy
+msgid "% MIDI instrument:"
+msgstr "Pas d'instrument tel: `%s'"
+
+#: lilypond-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr "Niveau d'indentation de lily: %d"
+
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "% Auteur: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% Généré automatiquement"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% dal file di input: "
+
 #: main.cc:93
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr ""
@@ -1086,6 +1193,10 @@ msgstr ""
 msgid "set smallest duration"
 msgstr "Positionne la plus petite durée (?)"
 
+#: main.cc:103
+msgid "don't timestamp the output"
+msgstr ""
+
 #: main.cc:105
 msgid "be verbose"
 msgstr ""
@@ -1101,7 +1212,7 @@ msgstr "Usage: %s [OPTION... [FICHIER]"
 
 #: main.cc:116
 #, fuzzy
-msgid "Translate MIDI-file to mudela"
+msgid "Translate MIDI-file to lilypond"
 msgstr "Traduction du fichier MIDI en mudela"
 
 #: main.cc:130
@@ -1182,77 +1293,6 @@ msgstr "piste MIDI attendue"
 msgid "invalid track length"
 msgstr "taille de piste invalide"
 
-#: mudela-item.cc:161
-#, c-format
-msgid "#32 in quarter: %d"
-msgstr ""
-
-#: mudela-score.cc:108
-#, c-format
-msgid "Lily output to %s..."
-msgstr "Sortie de Lily vers %s..."
-
-#: mudela-score.cc:119
-#, fuzzy, c-format
-msgid "track %d:"
-msgstr "piste "
-
-#: mudela-score.cc:155
-msgid "Processing..."
-msgstr "Traitement..."
-
-#: mudela-score.cc:164
-msgid "Creating voices..."
-msgstr "Création des voix..."
-
-#: mudela-score.cc:168
-msgid "track "
-msgstr "piste "
-
-#: mudela-score.cc:177
-msgid "NOT Filtering tempo..."
-msgstr "PAS de filtrage du tempo..."
-
-#: mudela-score.cc:186
-msgid "NOT Quantifying columns..."
-msgstr "PAS de quantification des colonnes..."
-
-#: mudela-score.cc:190
-msgid "Quantifying columns..."
-msgstr "Quantification des colonnes..."
-
-#: mudela-score.cc:223
-msgid "Settling columns..."
-msgstr ""
-
-#: mudela-staff.cc:209
-msgid "% MIDI copyright:"
-msgstr ""
-
-#: mudela-staff.cc:210
-#, fuzzy
-msgid "% MIDI instrument:"
-msgstr "Pas d'instrument tel: `%s'"
-
-#: mudela-stream.cc:37
-#, c-format
-msgid "lily indent level: %d"
-msgstr "Niveau d'indentation de lily: %d"
-
-#. Maybe better not to translate these?
-#: mudela-stream.cc:83
-msgid "% Creator: "
-msgstr "% Auteur: "
-
-#: mudela-stream.cc:88
-msgid "% Automatically generated"
-msgstr "% Généré automatiquement"
-
-#: mudela-stream.cc:97
-#, c-format
-msgid "% from input file: "
-msgstr "% dal file di input: "
-
 #, fuzzy
 #~ msgid "Dependency file left in `%s'"
 #~ msgstr "impossible d'ouvrir le fichier: `%s'"
@@ -1291,10 +1331,6 @@ msgstr "% dal file di input: "
 #~ msgid "No key name, assuming `C'"
 #~ msgstr "Pas de nom de clé: Do assumé"
 
-#, fuzzy
-#~ msgid "Don't know how handle empty keys"
-#~ msgstr "ne sait pas traiter les clés vides"
-
 #, fuzzy
 #~ msgid "out of tune:"
 #~ msgstr "hors de la tonalité"
index d13607c9092d2419804c79b3c8471a2f37ab2be6..3177c6e791016e022bca900b30236aaf216b0ec5 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -5,7 +5,7 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"POT-Creation-Date: 2001-03-06 12:36+0100\n"
+"POT-Creation-Date: 2001-03-21 16:06+0100\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Date: 1998-05-30 00:17:12+0200\n"
 "From:  <jantien@xs4all.nl>\n"
@@ -13,120 +13,139 @@ msgstr ""
 "--output-dir=../po/out --add-comments --keyword=_ --keyword=_f\n"
 "Files: bow.cc int.cc\n"
 
-#: ly2dvi.py:67 main.cc:95 main.cc:109
+#: ly2dvi.py:86 main.cc:95 main.cc:105
 msgid "this help"
 msgstr ""
 
-#: ly2dvi.py:68
+#: ly2dvi.py:87
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:69
+#: ly2dvi.py:88
 #, fuzzy
 msgid "generate PostScript output"
 msgstr "vincoli degenerati"
 
-#: ly2dvi.py:70
+#: ly2dvi.py:89
 msgid "keep all output, and name the directory ly2dvi.dir"
 msgstr ""
 
-#: ly2dvi.py:71
+#: ly2dvi.py:90
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:72 main.cc:104 main.cc:119
+#: ly2dvi.py:91 main.cc:115
+msgid "verbose"
+msgstr ""
+
+#: ly2dvi.py:92 main.cc:104 main.cc:114
 msgid "print version number"
 msgstr ""
 
-#: ly2dvi.py:73 main.cc:106 main.cc:121
+#: ly2dvi.py:93 main.cc:106 main.cc:116
 #, fuzzy
 msgid "show warranty and copyright"
 msgstr "  -w, --warranty         mostra la garanzia e il copyright\n"
 
-#: ly2dvi.py:74
+#: ly2dvi.py:94
 msgid "dump all final output into DIR"
 msgstr ""
 
-#: ly2dvi.py:75 main.cc:113
+#: ly2dvi.py:95 main.cc:109
 #, 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:101
+#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23
+msgid "warning: "
+msgstr "attenzione: "
+
+#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17
+msgid "error: "
+msgstr "errore: "
+
+#: ly2dvi.py:130
 msgid "Exiting ... "
 msgstr ""
 
-#: ly2dvi.py:120
-#, c-format
-msgid "Reading `%s'"
-msgstr ""
+#: ly2dvi.py:149
+#, fuzzy, c-format
+msgid "Reading %s..."
+msgstr "Genero le voci..."
 
-#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111
+#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87
 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
 #, c-format
 msgid "can't open file: `%s'"
 msgstr "non posso aprire il file: `%s'"
 
-#: ly2dvi.py:187
+#: ly2dvi.py:216
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "Uso: %s [OPZIONE... [FILE]"
 
-#: ly2dvi.py:189
+#: ly2dvi.py:218
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
-#: ly2dvi.py:191 main.cc:119 main.cc:151
+#: ly2dvi.py:220 main.cc:119 main.cc:146
 msgid "Options:"
 msgstr "Opzioni: "
 
-#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23
-msgid "warning: "
-msgstr "attenzione: "
-
-#: ly2dvi.py:196
+#: ly2dvi.py:224
 msgid "all output is written in the CURRENT directory"
 msgstr ""
 
-#: ly2dvi.py:198 main.cc:123 main.cc:174
+#: ly2dvi.py:226 main.cc:123 main.cc:169
 #, c-format
 msgid "Report bugs to %s"
 msgstr ""
 
-#: ly2dvi.py:230
+#: ly2dvi.py:260
 #, c-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17
-msgid "error: "
-msgstr "errore: "
-
-#: ly2dvi.py:234
+#: ly2dvi.py:263
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:236
+#: ly2dvi.py:265
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:277
+#: ly2dvi.py:301
+#, fuzzy, c-format
+msgid "no such setting: %s"
+msgstr "% strumento:"
+
+#: ly2dvi.py:309
 #, c-format
 msgid "Analyzing `%s'"
 msgstr ""
 
-#: ly2dvi.py:539 scores.cc:44
+#: ly2dvi.py:353
+#, c-format
+msgid "no lilypond output found for %s"
+msgstr ""
+
+#: ly2dvi.py:395
+#, fuzzy, c-format
+msgid "invalid value: %s"
+msgstr "carattere illegale: `%c'"
+
+#: ly2dvi.py:602 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to %s..."
 msgstr "L'output stampato è inviato a %s..."
 
-#: ly2dvi.py:540
-#, c-format
-msgid "%s file left in `%s'"
-msgstr ""
+#: ly2dvi.py:603
+#, fuzzy, c-format
+msgid "%s output to %s..."
+msgstr "L'output MIDI è inviato a %s..."
 
 #: data-file.cc:54
 msgid "EOF in a string"
@@ -232,12 +251,12 @@ msgstr ""
 msgid "can't find default font: `%s'"
 msgstr "non trovo il file: `%s'"
 
-#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137
+#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137
 #, fuzzy, c-format
 msgid "(search path: `%s')"
 msgstr "(Il path di caricamento è `%s'"
 
-#: all-font-metrics.cc:173 parser.yy:1663
+#: all-font-metrics.cc:173 parser.yy:1681
 msgid "Giving up"
 msgstr ""
 
@@ -316,7 +335,7 @@ msgstr ""
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
-#: chord-tremolo-engraver.cc:141
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162
 #, fuzzy
 msgid "unterminated chord tremolo"
 msgstr "beam non terminato"
@@ -325,7 +344,7 @@ msgstr "beam non terminato"
 msgid "no one to print a tremolos"
 msgstr ""
 
-#: collision.cc:116
+#: collision.cc:118
 #, fuzzy
 msgid "Too many clashing notecolumns.  Ignoring them."
 msgstr "Troppe collisioni tra colonne di note. Le ignoro."
@@ -359,7 +378,7 @@ msgstr "crescendo non terminato"
 msgid "already have a decrescendo"
 msgstr "crescendo non terminato"
 
-#: dynamic-engraver.cc:307
+#: dynamic-engraver.cc:318
 #, fuzzy
 msgid "unterminated (de)crescendo"
 msgstr "crescendo non terminato"
@@ -376,7 +395,7 @@ msgstr ""
 msgid "no one to print a repeat brace"
 msgstr ""
 
-#: font-interface.cc:220
+#: font-interface.cc:237
 msgid "couldn't find any font satisfying "
 msgstr ""
 
@@ -411,7 +430,7 @@ msgstr "beam non terminato"
 msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
 msgstr ""
 
-#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24
+#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24
 #: scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
@@ -448,104 +467,98 @@ msgstr ""
 msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:108
+#: main.cc:104
 msgid "EXT"
 msgstr ""
 
-#: main.cc:108
+#: main.cc:104
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr ""
 
-#: main.cc:110
+#: main.cc:106
 msgid "FIELD"
 msgstr ""
 
-#: main.cc:110
+#: main.cc:106
 msgid "write header field to BASENAME.FIELD"
 msgstr ""
 
-#: main.cc:111 main.cc:114
+#: main.cc:107 main.cc:110
 msgid "DIR"
 msgstr ""
 
-#: main.cc:111
+#: main.cc:107
 #, fuzzy
 msgid "add DIR to search path"
 msgstr "  -I, --include=DIR      aggiunge DIR ai path di ricerca\n"
 
-#: main.cc:98 main.cc:112
+#: main.cc:98 main.cc:108
 msgid "FILE"
 msgstr ""
 
-#: main.cc:112
+#: main.cc:108
 #, fuzzy
 msgid "use FILE as init file"
 msgstr "  -i, --init=NOMEFILE    usa NOMEFILE come file iniziale\n"
 
-#: main.cc:114
+#: main.cc:110
 msgid "prepend DIR to dependencies"
 msgstr ""
 
-#: main.cc:115
+#: main.cc:111
 #, fuzzy
 msgid "produce MIDI output only"
 msgstr "  -M, --no-paper         produce solo output midi\n"
 
-#: main.cc:116
+#: main.cc:112
 msgid "NAME"
 msgstr ""
 
-#: main.cc:116
+#: main.cc:112
 msgid "write output to NAME"
 msgstr ""
 
-#: main.cc:117
+#: main.cc:113
 #, fuzzy
 msgid "inhibit file output naming and exporting"
 msgstr ""
 "  -s, --safe             inibisce la rinomina dei file di output e "
 "l'esportazione di macro di TeX\n"
 
-#: main.cc:103 main.cc:118
-#, fuzzy
-msgid "don't timestamp the output"
-msgstr ""
-"  -T, --no-timestamps    non inserisce marcatori temporali nell'output\n"
-
-#: main.cc:120
-msgid "verbose"
+#: main.cc:117
+msgid "EXPR"
 msgstr ""
 
-#: main.cc:122
-msgid "write midi ouput in formatted ascii"
+#: main.cc:117
+msgid "evalute EXPR as Scheme after .scm init is read"
 msgstr ""
 
 #.
 #. No version number or newline here. It confuses help2man
 #.
-#: main.cc:139
+#: main.cc:134
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Uso: %s [OPZIONE]... [FILE]..."
 
-#: main.cc:141
+#: main.cc:136
 #, fuzzy
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "Stampa partitura oppure suona una song MIDI da FILE o <stdin>"
 
-#: main.cc:145
+#: main.cc:140
 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 ""
 
-#: main.cc:155
+#: main.cc:150
 #, fuzzy
 msgid "This binary was compiled with the following options:"
 msgstr "GNU LilyPond è stata compilata con le seguenti impostazioni:"
 
-#: main.cc:55 main.cc:182
+#: main.cc:55 main.cc:177
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -553,17 +566,17 @@ msgid ""
 "certain conditions.  Invoke as `%s --warranty' for more information.\n"
 msgstr ""
 
-#: main.cc:62 main.cc:189 main.cc:201
+#: main.cc:62 main.cc:184 main.cc:196
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s di"
 
-#: main.cc:199
+#: main.cc:194
 #, fuzzy
 msgid "GNU LilyPond -- The music typesetter"
 msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU"
 
-#: main.cc:71 main.cc:207
+#: main.cc:71 main.cc:202
 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"
@@ -613,29 +626,37 @@ msgstr "indicazione altezza priva di senso"
 msgid "Transposition by %s makes accidental larger than two"
 msgstr "la trasposizine di %s rende le alterazioni più che doppie"
 
-#: music.cc:222
+#: music.cc:224
 msgid "ly_get_mus_property (): Not a Music"
 msgstr ""
 
-#: music.cc:236
+#: music.cc:238
 msgid "ly_set_mus_property (): Not a symbol"
 msgstr ""
 
-#: music.cc:248
+#: music.cc:250
 msgid "ly_set_mus_property ():  not of type Music"
 msgstr ""
 
+#: music.cc:264
+msgid "ly_make_music (): Not a string"
+msgstr ""
+
+#: music.cc:284
+msgid "ly_music_name (): Not a music expression"
+msgstr ""
+
 #: music-output-def.cc:115
 #, fuzzy, c-format
 msgid "can't find `%s' context"
 msgstr "non trovo `%s'"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:138
 #, fuzzy, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "Il nome dell'identificatore è una parola chiave (`%s')"
 
-#: my-lily-lexer.cc:157
+#: my-lily-lexer.cc:158
 #, c-format
 msgid "error at EOF: %s"
 msgstr "errore alla fine del file: %s"
@@ -644,7 +665,7 @@ msgstr "errore alla fine del file: %s"
 msgid "Parsing..."
 msgstr "Analisi..."
 
-#: my-lily-parser.cc:55
+#: my-lily-parser.cc:57
 #, fuzzy
 msgid "Braces don't match"
 msgstr "le bretelle no si accoppiano"
@@ -659,11 +680,11 @@ msgstr "Cosa? Non 
 msgid "paper output to %s..."
 msgstr "L'output stampato è inviato a %s..."
 
-#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95
 msgid ", at "
 msgstr ", a "
 
-#: paper-outputter.cc:245
+#: paper-outputter.cc:232
 #, fuzzy, c-format
 msgid "writing header field %s to %s..."
 msgstr "scrivo il file delle dipendenze: `%s'..."
@@ -672,7 +693,7 @@ msgstr "scrivo il file delle dipendenze: `%s'..."
 msgid "Preprocessing elements..."
 msgstr "Pre-elaborazione..."
 
-#: paper-score.cc:113
+#: paper-score.cc:114
 #, fuzzy
 msgid "Outputting Score, defined at: "
 msgstr "emetto lo Score, definito a: "
@@ -703,6 +724,15 @@ msgstr ""
 msgid "none of these in my family: `%s'"
 msgstr ""
 
+#: percent-repeat-engraver.cc:108
+#, fuzzy
+msgid "Don't know yet how to handle this percent repeat."
+msgstr "non so manipolare tasti vuoti"
+
+#: percent-repeat-iterator.cc:53
+msgid "no one to print a percent"
+msgstr ""
+
 #: performance.cc:51
 #, fuzzy
 msgid "Track ... "
@@ -712,12 +742,12 @@ msgstr "traccia "
 msgid "Creator: "
 msgstr "Autore: "
 
-#: performance.cc:116
+#: performance.cc:109
 #, c-format
 msgid "from musical definition: %s"
 msgstr "della definizione musicale: %s"
 
-#: performance.cc:171
+#: performance.cc:164
 #, c-format
 msgid "MIDI output to %s..."
 msgstr "L'output MIDI è inviato a %s..."
@@ -783,7 +813,7 @@ msgstr "ho trovato un errore, /*non sto elaborando lo spartito*/"
 msgid "elapsed time: %.2f seconds"
 msgstr "durata: %.2f secondi"
 
-#: score-engraver.cc:177
+#: score-engraver.cc:183
 #, fuzzy, c-format
 msgid "unbound spanner `%s'"
 msgstr "Spanner non legato `%s'"
@@ -822,7 +852,9 @@ msgstr "Metto uno slur sulla pausa."
 msgid "unterminated slur"
 msgstr "slur non terminato"
 
-#: slur-engraver.cc:142
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start request?
+#: slur-engraver.cc:144
 #, fuzzy
 msgid "can't find start of slur"
 msgstr "non trovo le estremità di %s"
@@ -861,21 +893,23 @@ msgstr "extender non terminato"
 msgid "can't find ascii character: %d"
 msgstr "non riesco a trovare il carattere `%s'"
 
-#: tfm-reader.cc:105
+#: tfm-reader.cc:106
 #, c-format
-msgid "TFM header of `%s' has only %u word(s)"
+msgid "TFM header of `%s' has only %u word (s)"
 msgstr ""
 
-#: tfm-reader.cc:139
+#: tfm-reader.cc:140
 #, c-format
 msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
 msgstr ""
 
-#: tie-engraver.cc:211 tie-performer.cc:173
+#. How to shut up this warning, when no notes appeared because
+#. they were suicided by Thread_devnull_engraver?
+#: tie-engraver.cc:215 tie-performer.cc:173
 msgid "No ties were created!"
 msgstr ""
 
-#: tie-engraver.cc:230
+#: tie-engraver.cc:234
 msgid "lonely tie"
 msgstr ""
 
@@ -893,21 +927,21 @@ msgstr "controllo del battute fallito: %s"
 msgid "unknown translator: `%s'"
 msgstr "traduttore sconosciuto `%s'"
 
-#: translator-def.cc:96
+#: translator-def.cc:99
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-def.cc:102
+#: translator-def.cc:105
 #, c-format
 msgid "Already contains: `%s'"
 msgstr ""
 
-#: translator-def.cc:103
+#: translator-def.cc:106
 #, fuzzy, c-format
 msgid "Not adding translator: `%s'"
 msgstr "traduttore sconosciuto `%s'"
 
-#: translator-def.cc:215
+#: translator-def.cc:224
 #, fuzzy, c-format
 msgid "can't find: `%s'"
 msgstr "non trovo `%s'"
@@ -922,19 +956,19 @@ msgstr "non trovo e non posso creare '%s' chiamato '%s'"
 msgid "can't find or create: `%s'"
 msgstr "non trovo e non posso creare `%s'"
 
-#: translator-group.cc:403
+#: translator-group.cc:414
 #, c-format
 msgid ""
 "Can't find property type-check for `%s'.  Perhaps you made a typing error?"
 msgstr ""
 
-#: translator-group.cc:417
+#: translator-group.cc:428
 #, c-format
 msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
 
 #. programming_error?
-#: translator-group.cc:436
+#: translator-group.cc:447
 msgid "ly-get-trans-property: expecting a Translator_group argument"
 msgstr ""
 
@@ -955,118 +989,189 @@ msgstr ""
 msgid "Oldest supported input version: %s"
 msgstr ""
 
-#: parser.yy:471
+#: parser.yy:473
 msgid "Wrong type for property value"
 msgstr "Tipo sbagliato per il valore di una proprietà"
 
-#: parser.yy:666
+#: parser.yy:672
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:730
+#: parser.yy:736
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:735
+#: parser.yy:741
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1211
+#: parser.yy:1236
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1221
+#: parser.yy:1246
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1353
+#: parser.yy:1371
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1364
+#: parser.yy:1382
 #, fuzzy
 msgid "Must have duration object"
 msgstr "indicazione durata priva di senso"
 
-#: parser.yy:1373 parser.yy:1381 parser.yy:1661
+#: parser.yy:1391 parser.yy:1399 parser.yy:1679
 #, fuzzy
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "bisogna essere in Lyric mode per i testi"
 
-#: parser.yy:1546 parser.yy:1575
+#: parser.yy:1564 parser.yy:1593
 #, c-format
 msgid "not a duration: %d"
 msgstr "non è una durata: %d"
 
-#: parser.yy:1584
+#: parser.yy:1602
 #, fuzzy
 msgid "Have to be in Note mode for notes"
 msgstr "bisogna essere in Note mode per le note"
 
-#: parser.yy:1680
+#: parser.yy:1698
 #, fuzzy
 msgid "Have to be in Chord mode for chords"
 msgstr "bisogna essere in Chord mode per gli accordi"
 
-#: parser.yy:1842 parser.yy:1860
+#: parser.yy:1860 parser.yy:1878
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1846
+#: parser.yy:1864
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:165
+#: lexer.ll:166
 msgid "EOF found inside a comment"
 msgstr "ho trovato un EOF in un commento"
 
-#: lexer.ll:179
+#: lexer.ll:180
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:203
+#: lexer.ll:204
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "indentificatore non definito: `%s'"
 
 #. backup rule
-#: lexer.ll:208
+#: lexer.ll:209
 #, fuzzy
 msgid "Missing end quote"
 msgstr "apice finale mancante"
 
 #. backup rule
-#: lexer.ll:230 lexer.ll:234
+#: lexer.ll:231 lexer.ll:235
 msgid "white expected"
 msgstr "aspettavo uno spazio bianco"
 
-#: lexer.ll:243
+#: lexer.ll:244
 msgid "Can't evaluate Scheme in safe mode"
 msgstr ""
 
-#: lexer.ll:335
+#: lexer.ll:336
 msgid "Brace found at end of lyric. Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:439
+#: lexer.ll:440
 #, fuzzy, c-format
 msgid "invalid character: `%c'"
 msgstr "carattere illegale: `%c'"
 
-#: lexer.ll:520
+#: lexer.ll:521
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "stringa di escape sconosciuta: `\\%s'"
 
-#: lexer.ll:602
+#: lexer.ll:603
 #, fuzzy, c-format
 msgid "incorrect lilypond version: %s (%s, %s)"
 msgstr "versione di mudela errata: %s (%s, %s)"
 
-#: lexer.ll:603
+#: lexer.ll:604
 msgid "Consider converting the input with the convert-ly script"
 msgstr ""
 
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr "#32 in un quarto: %d"
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "Lily output to %s..."
+msgstr "Output di Lily in %s..."
+
+#: lilypond-score.cc:119
+#, fuzzy, c-format
+msgid "track %d:"
+msgstr "traccia "
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "Elaboro..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "Genero le voci..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "traccia "
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "NON filtro il tempo..."
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "NON quantifico le colonne..."
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr "Quantifico le colonne..."
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr "Sistemo le colonne..."
+
+#: lilypond-staff.cc:209
+msgid "% MIDI copyright:"
+msgstr ""
+
+#: lilypond-staff.cc:210
+#, fuzzy
+msgid "% MIDI instrument:"
+msgstr "% strumento:"
+
+#: lilypond-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr "livello di indentazione di lili: %d"
+
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "% Autore: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% Generato automaticamente"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% dal file di input: "
+
 #: main.cc:93
 #, fuzzy
 msgid "write exact durations, e.g.: a4*385/384"
@@ -1120,6 +1225,12 @@ msgstr ""
 msgid "set smallest duration"
 msgstr "indicazione durata priva di senso"
 
+#: main.cc:103
+#, fuzzy
+msgid "don't timestamp the output"
+msgstr ""
+"  -T, --no-timestamps    non inserisce marcatori temporali nell'output\n"
+
 #: main.cc:105
 msgid "be verbose"
 msgstr ""
@@ -1137,7 +1248,7 @@ msgstr "Uso: %s [OPZIONE... [FILE]"
 
 #: main.cc:116
 #, fuzzy
-msgid "Translate MIDI-file to mudela"
+msgid "Translate MIDI-file to lilypond"
 msgstr "Traduce un file midi in mudela"
 
 #: main.cc:130
@@ -1218,77 +1329,6 @@ msgstr "mi spettavo una traccia MIDI"
 msgid "invalid track length"
 msgstr "lunghezza della traccia non valida"
 
-#: mudela-item.cc:161
-#, c-format
-msgid "#32 in quarter: %d"
-msgstr "#32 in un quarto: %d"
-
-#: mudela-score.cc:108
-#, c-format
-msgid "Lily output to %s..."
-msgstr "Output di Lily in %s..."
-
-#: mudela-score.cc:119
-#, fuzzy, c-format
-msgid "track %d:"
-msgstr "traccia "
-
-#: mudela-score.cc:155
-msgid "Processing..."
-msgstr "Elaboro..."
-
-#: mudela-score.cc:164
-msgid "Creating voices..."
-msgstr "Genero le voci..."
-
-#: mudela-score.cc:168
-msgid "track "
-msgstr "traccia "
-
-#: mudela-score.cc:177
-msgid "NOT Filtering tempo..."
-msgstr "NON filtro il tempo..."
-
-#: mudela-score.cc:186
-msgid "NOT Quantifying columns..."
-msgstr "NON quantifico le colonne..."
-
-#: mudela-score.cc:190
-msgid "Quantifying columns..."
-msgstr "Quantifico le colonne..."
-
-#: mudela-score.cc:223
-msgid "Settling columns..."
-msgstr "Sistemo le colonne..."
-
-#: mudela-staff.cc:209
-msgid "% MIDI copyright:"
-msgstr ""
-
-#: mudela-staff.cc:210
-#, fuzzy
-msgid "% MIDI instrument:"
-msgstr "% strumento:"
-
-#: mudela-stream.cc:37
-#, c-format
-msgid "lily indent level: %d"
-msgstr "livello di indentazione di lili: %d"
-
-#. Maybe better not to translate these?
-#: mudela-stream.cc:83
-msgid "% Creator: "
-msgstr "% Autore: "
-
-#: mudela-stream.cc:88
-msgid "% Automatically generated"
-msgstr "% Generato automaticamente"
-
-#: mudela-stream.cc:97
-#, c-format
-msgid "% from input file: "
-msgstr "% dal file di input: "
-
 #, fuzzy
 #~ msgid "Dependency file left in `%s'"
 #~ msgstr "scrivo il file delle dipendenze: `%s'..."
@@ -1346,10 +1386,6 @@ msgstr "% dal file di input: "
 #~ msgid "No key name, assuming `C'"
 #~ msgstr "Nessuna armatura di chiave: assumo Do'"
 
-#, fuzzy
-#~ msgid "Don't know how handle empty keys"
-#~ msgstr "non so manipolare tasti vuoti"
-
 #, fuzzy
 #~ msgid "out of tune:"
 #~ msgstr "stonato"
index bc8ddbec49d0ba61c10ca6131aaf6e5fa775fa48..cca31021b30bd322e8da7273dd2f6cd8081ba404 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 1.2.17\n"
-"POT-Creation-Date: 2001-03-06 12:36+0100\n"
+"POT-Creation-Date: 2001-03-21 16:06+0100\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"
@@ -13,117 +13,137 @@ msgstr ""
 "Content-Type: text/plain; charset=EUC-JP\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ly2dvi.py:67 main.cc:95 main.cc:109
+#: ly2dvi.py:86 main.cc:95 main.cc:105
 msgid "this help"
 msgstr "¤³¤Î¥Ø¥ë¥×"
 
-#: ly2dvi.py:68
+#: ly2dvi.py:87
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:69
+#: ly2dvi.py:88
 #, fuzzy
 msgid "generate PostScript output"
 msgstr "À©¸Â¤ò´ËÏÂ"
 
-#: ly2dvi.py:70
+#: ly2dvi.py:89
 msgid "keep all output, and name the directory ly2dvi.dir"
 msgstr ""
 
-#: ly2dvi.py:71
+#: ly2dvi.py:90
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:72 main.cc:104 main.cc:119
+#: ly2dvi.py:91 main.cc:115
+#, fuzzy
+msgid "verbose"
+msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹"
+
+#: ly2dvi.py:92 main.cc:104 main.cc:114
 msgid "print version number"
 msgstr "¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨"
 
-#: ly2dvi.py:73 main.cc:106 main.cc:121
+#: ly2dvi.py:93 main.cc:106 main.cc:116
 msgid "show warranty and copyright"
 msgstr "ÊݾڤÈÃøºî¸¢¤Ë¤Ä¤¤¤Æɽ¼¨¤¹¤ë"
 
-#: ly2dvi.py:74
+#: ly2dvi.py:94
 msgid "dump all final output into DIR"
 msgstr ""
 
-#: ly2dvi.py:75 main.cc:113
+#: ly2dvi.py:95 main.cc:109
 msgid "write Makefile dependencies for every input file"
 msgstr "Á´¤Æ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î Makefile °Í¸´Ø·¸¤ò½ñ¤­¹þ¤à"
 
-#: ly2dvi.py:101
+#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23
+msgid "warning: "
+msgstr "·Ù¹ð: "
+
+#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17
+msgid "error: "
+msgstr "¥¨¥é¡¼: "
+
+#: ly2dvi.py:130
 #, fuzzy
 msgid "Exiting ... "
 msgstr "¹Ô ..."
 
-#: ly2dvi.py:120
+#: ly2dvi.py:149
 #, fuzzy, c-format
-msgid "Reading `%s'"
+msgid "Reading %s..."
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
 
-#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111
+#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87
 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
 #, fuzzy, c-format
 msgid "can't open file: `%s'"
 msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
 
-#: ly2dvi.py:187
+#: ly2dvi.py:216
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]"
 
-#: ly2dvi.py:189
+#: ly2dvi.py:218
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
-#: ly2dvi.py:191 main.cc:119 main.cc:151
+#: ly2dvi.py:220 main.cc:119 main.cc:146
 msgid "Options:"
 msgstr "¥ª¥×¥·¥ç¥ó:"
 
-#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23
-msgid "warning: "
-msgstr "·Ù¹ð: "
-
-#: ly2dvi.py:196
+#: ly2dvi.py:224
 msgid "all output is written in the CURRENT directory"
 msgstr ""
 
-#: ly2dvi.py:198 main.cc:123 main.cc:174
+#: ly2dvi.py:226 main.cc:123 main.cc:169
 #, c-format
 msgid "Report bugs to %s"
 msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø"
 
-#: ly2dvi.py:230
+#: ly2dvi.py:260
 #, fuzzy, c-format
 msgid "Invoking `%s'"
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
 
-#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17
-msgid "error: "
-msgstr "¥¨¥é¡¼: "
-
-#: ly2dvi.py:234
+#: ly2dvi.py:263
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:236
+#: ly2dvi.py:265
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:277
+#: ly2dvi.py:301
+#, fuzzy, c-format
+msgid "no such setting: %s"
+msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
+
+#: ly2dvi.py:309
 #, c-format
 msgid "Analyzing `%s'"
 msgstr ""
 
-#: ly2dvi.py:539 scores.cc:44
+#: ly2dvi.py:353
+#, c-format
+msgid "no lilypond output found for %s"
+msgstr ""
+
+#: ly2dvi.py:395
+#, fuzzy, c-format
+msgid "invalid value: %s"
+msgstr "̵¸ú¤Êʸ»ú: `%c'"
+
+#: ly2dvi.py:602 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to %s..."
 msgstr "%s ¤Ø paper ½ÐÎÏ..."
 
-#: ly2dvi.py:540
-#, c-format
-msgid "%s file left in `%s'"
-msgstr ""
+#: ly2dvi.py:603
+#, fuzzy, c-format
+msgid "%s output to %s..."
+msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
 
 #: data-file.cc:54
 msgid "EOF in a string"
@@ -229,12 +249,12 @@ msgstr "
 msgid "can't find default font: `%s'"
 msgstr "¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
 
-#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137
+#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137
 #, c-format
 msgid "(search path: `%s')"
 msgstr "(¸¡º÷¥Ñ¥¹: `%s')"
 
-#: all-font-metrics.cc:173 parser.yy:1663
+#: all-font-metrics.cc:173 parser.yy:1681
 msgid "Giving up"
 msgstr "Äü¤á¤Þ¤·¤¿"
 
@@ -315,7 +335,7 @@ msgstr "̵
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr "̵¸ú¤Êž²ó¥Ô¥Ã¥Á: ¥³¡¼¥É¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %s"
 
-#: chord-tremolo-engraver.cc:141
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162
 #, fuzzy
 msgid "unterminated chord tremolo"
 msgstr "½ªÃ¼¤Î¤Ê¤¤¥Ï¥¤¥Õ¥ó"
@@ -325,7 +345,7 @@ msgstr "
 msgid "no one to print a tremolos"
 msgstr "È¿Éüµ­¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: collision.cc:116
+#: collision.cc:118
 msgid "Too many clashing notecolumns.  Ignoring them."
 msgstr "Äà¤ê¹ç¤ï¤Ê¤¤²»É䤬¿¤¹¤®¤Þ¤¹¡£¤½¤ì¤é¤ò̵»ë¤·¤Þ¤¹¡£"
 
@@ -357,7 +377,7 @@ msgstr "
 msgid "already have a decrescendo"
 msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
 
-#: dynamic-engraver.cc:307
+#: dynamic-engraver.cc:318
 #, fuzzy
 msgid "unterminated (de)crescendo"
 msgstr "½ªÎ»¤·¤Æ¤¤¤Ê¤¤¥¯¥ì¥Ã¥·¥§¥ó¥É"
@@ -374,7 +394,7 @@ msgstr "
 msgid "no one to print a repeat brace"
 msgstr "È¿Éüµ­¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: font-interface.cc:220
+#: font-interface.cc:237
 msgid "couldn't find any font satisfying "
 msgstr ""
 
@@ -407,7 +427,7 @@ msgstr "
 msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
 msgstr "º¸Â¦¤Ë·Ò¤²¤ë¥Ï¥¤¥Õ¥ó¤¬¤¢¤ê¤Þ¤»¤ó¡£¥Ï¥¤¥Õ¥ó¤ÎÍ×µá¤ò̵»ë¤·¤Þ¤¹"
 
-#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24
+#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24
 #: scores.cc:136 scores.cc:142
 #, fuzzy, c-format
 msgid "can't find file: `%s'"
@@ -444,88 +464,83 @@ msgstr ""
 msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:108
+#: main.cc:104
 msgid "EXT"
 msgstr "EXT"
 
-#: main.cc:108
+#: main.cc:104
 #, fuzzy
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr "½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È EXT ¤ò»È¤¦"
 
-#: main.cc:110
+#: main.cc:106
 #, fuzzy
 msgid "FIELD"
 msgstr "FILE"
 
-#: main.cc:110
+#: main.cc:106
 msgid "write header field to BASENAME.FIELD"
 msgstr ""
 
-#: main.cc:111 main.cc:114
+#: main.cc:107 main.cc:110
 msgid "DIR"
 msgstr "DIR"
 
-#: main.cc:111
+#: main.cc:107
 msgid "add DIR to search path"
 msgstr "DIR ¤ò¸¡º÷¥Ñ¥¹¤ËÄɲÃ"
 
-#: main.cc:98 main.cc:112
+#: main.cc:98 main.cc:108
 msgid "FILE"
 msgstr "FILE"
 
-#: main.cc:112
+#: main.cc:108
 msgid "use FILE as init file"
 msgstr "FILE ¤ò½é´ü²½¥Õ¥¡¥¤¥ë¤È¤·¤Æ»ÈÍÑ"
 
-#: main.cc:114
+#: main.cc:110
 msgid "prepend DIR to dependencies"
 msgstr ""
 
-#: main.cc:115
+#: main.cc:111
 msgid "produce MIDI output only"
 msgstr "MIDI ½ÐÎϤÎÀ¸À®¤Î¤ß"
 
-#: main.cc:116
+#: main.cc:112
 #, fuzzy
 msgid "NAME"
 msgstr "BASENAME"
 
-#: main.cc:116
+#: main.cc:112
 #, fuzzy
 msgid "write output to NAME"
 msgstr "BASENAME[-x].³ÈÄ¥»Ò ¤Ø½ÐÎϤò½ñ¤­¹þ¤à"
 
-#: main.cc:117
+#: main.cc:113
 msgid "inhibit file output naming and exporting"
 msgstr "̾Á°ÉÕ¤±¤È¥¨¥¯¥¹¥Ý¡¼¥È¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¤òÍÞÀ©¤¹¤ë"
 
-#: main.cc:103 main.cc:118
-msgid "don't timestamp the output"
-msgstr "½ÐÎϤ˥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¤Ä¤±¤Ê¤¤"
-
-#: main.cc:120
-#, fuzzy
-msgid "verbose"
-msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹"
+#: main.cc:117
+msgid "EXPR"
+msgstr ""
 
-#: main.cc:122
-msgid "write midi ouput in formatted ascii"
+#: main.cc:117
+msgid "evalute EXPR as Scheme after .scm init is read"
 msgstr ""
 
 #.
 #. No version number or newline here. It confuses help2man
 #.
-#: main.cc:139
+#: main.cc:134
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]..."
 
-#: main.cc:141
+#: main.cc:136
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "¥Õ¥¡¥¤¥ë¤Î³Ú¶Ê¤òÁÈÈǤ·¤¿¤ê¡¢MIDI ±éÁÕ¤·¤¿¤ê¤¹¤ë"
 
-#: main.cc:145
+#: main.cc:140
 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"
@@ -535,11 +550,11 @@ msgstr ""
 "Èþ¤·¤¤ÉèÌ̤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£LilyPond ¤Ï GNU "
 "¥×¥í¥¸¥§¥¯¥È¤Î°ìÉô¤Ç¤¹¡£\n"
 
-#: main.cc:155
+#: main.cc:150
 msgid "This binary was compiled with the following options:"
 msgstr "¤³¤Î¥Ð¥¤¥Ê¥ê¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿"
 
-#: main.cc:55 main.cc:182
+#: main.cc:55 main.cc:177
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -555,17 +570,17 @@ msgstr ""
 "¤³¤ì¤ò²þÊѤ·¤¿¤ê¡¢Ê£À½¤òÇÛÉÛ¤·¤¿¤ê¤¹¤ë»ö¤Ï´¿·Þ¤µ¤ì¤Þ¤¹¡£\n"
 "`--warranty' ¥ª¥×¥·¥ç¥óÉÕ¤­¤Çµ¯Æ°¤¹¤ë¤È¡¢¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤¬ÆÀ¤é¤ì¤Þ¤¹¡£\n"
 
-#: main.cc:62 main.cc:189 main.cc:201
+#: main.cc:62 main.cc:184 main.cc:196
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s by"
 
-#: main.cc:199
+#: main.cc:194
 #, fuzzy
 msgid "GNU LilyPond -- The music typesetter"
 msgstr "GNU LilyPond -- The GNU Project music typesetter"
 
-#: main.cc:71 main.cc:207
+#: main.cc:71 main.cc:202
 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"
@@ -630,29 +645,37 @@ msgstr "
 msgid "Transposition by %s makes accidental larger than two"
 msgstr "%s ¤ÎÊÑÄ´¤Ë¤è¤Ã¤Æ¡¢Æó¤Ä¤òĶ¤¨¤ëÇÉÀ¸²»¤¬ºî¤é¤ì¤Þ¤·¤¿"
 
-#: music.cc:222
+#: music.cc:224
 msgid "ly_get_mus_property (): Not a Music"
 msgstr ""
 
-#: music.cc:236
+#: music.cc:238
 msgid "ly_set_mus_property (): Not a symbol"
 msgstr ""
 
-#: music.cc:248
+#: music.cc:250
 msgid "ly_set_mus_property ():  not of type Music"
 msgstr ""
 
+#: music.cc:264
+msgid "ly_make_music (): Not a string"
+msgstr ""
+
+#: music.cc:284
+msgid "ly_music_name (): Not a music expression"
+msgstr ""
+
 #: music-output-def.cc:115
 #, fuzzy, c-format
 msgid "can't find `%s' context"
 msgstr "`%s' ¥³¥ó¥Æ¥­¥¹¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:138
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "¼±ÊÌ»Ò̾¤Ï¥­¡¼¥ï¡¼¥É¤Ç¤¹: `%s'"
 
-#: my-lily-lexer.cc:157
+#: my-lily-lexer.cc:158
 #, c-format
 msgid "error at EOF: %s"
 msgstr "EOF ¤Î¤È¤³¤í¤Ç¥¨¥é¡¼: %s"
@@ -661,7 +684,7 @@ msgstr "EOF 
 msgid "Parsing..."
 msgstr "¹½Ê¸²òÀÏÃæ..."
 
-#: my-lily-parser.cc:55
+#: my-lily-parser.cc:57
 msgid "Braces don't match"
 msgstr "¥Ö¥ì¡¼¥¹¤¬°ìÃפ·¤Þ¤»¤ó"
 
@@ -675,11 +698,11 @@ msgstr "
 msgid "paper output to %s..."
 msgstr "%s ¤Ø paper ½ÐÎÏ..."
 
-#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95
 msgid ", at "
 msgstr ", at "
 
-#: paper-outputter.cc:245
+#: paper-outputter.cc:232
 #, fuzzy, c-format
 msgid "writing header field %s to %s..."
 msgstr "°Í¸´Ø·¸¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß: `%s'..."
@@ -688,7 +711,7 @@ msgstr "
 msgid "Preprocessing elements..."
 msgstr "Í×ÁǤòÁ°½èÍýÃæ..."
 
-#: paper-score.cc:113
+#: paper-score.cc:114
 msgid "Outputting Score, defined at: "
 msgstr "ÉèÌ̤ò½ÐÎϤ·¤Þ¤¹¡£¤³¤³¤ÇÄêµÁ: "
 
@@ -717,6 +740,16 @@ msgstr "
 msgid "none of these in my family: `%s'"
 msgstr "¥Õ¥¡¥ß¥ê¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
 
+#: percent-repeat-engraver.cc:108
+#, fuzzy
+msgid "Don't know yet how to handle this percent repeat."
+msgstr "¶õ¤Î¥­¡¼¤Î°·¤¤Êý¤¬È½¤ê¤Þ¤»¤ó"
+
+#: percent-repeat-iterator.cc:53
+#, fuzzy
+msgid "no one to print a percent"
+msgstr "È¿Éüµ­¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
+
 #: performance.cc:51
 msgid "Track ... "
 msgstr "¥È¥é¥Ã¥¯ ..."
@@ -725,12 +758,12 @@ msgstr "
 msgid "Creator: "
 msgstr "ºî¶Ê¼Ô: "
 
-#: performance.cc:116
+#: performance.cc:109
 #, c-format
 msgid "from musical definition: %s"
 msgstr "²»³ÚŪÄêµÁ¤è¤ê: %s"
 
-#: performance.cc:171
+#: performance.cc:164
 #, c-format
 msgid "MIDI output to %s..."
 msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
@@ -793,7 +826,7 @@ msgstr "
 msgid "elapsed time: %.2f seconds"
 msgstr "·Ð²á»þ´Ö: %.2f ÉÃ"
 
-#: score-engraver.cc:177
+#: score-engraver.cc:183
 #, c-format
 msgid "unbound spanner `%s'"
 msgstr "ÊĤ¸¤Æ¤¤¤Ê¤¤¥¹¥Ñ¥Ê `%s'"
@@ -830,7 +863,9 @@ msgstr "
 msgid "unterminated slur"
 msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥é¡¼"
 
-#: slur-engraver.cc:142
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start request?
+#: slur-engraver.cc:144
 #, fuzzy
 msgid "can't find start of slur"
 msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
@@ -868,21 +903,23 @@ msgstr "
 msgid "can't find ascii character: %d"
 msgstr "ascii Ê¸»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%d'"
 
-#: tfm-reader.cc:105
-#, c-format
-msgid "TFM header of `%s' has only %u word(s)"
+#: tfm-reader.cc:106
+#, fuzzy, c-format
+msgid "TFM header of `%s' has only %u word (s)"
 msgstr "`%s' ¤Î TFM ¥Ø¥Ã¥À¤Ë %u ¸ì¤·¤«¤¢¤ê¤Þ¤»¤ó"
 
-#: tfm-reader.cc:139
+#: 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 ¥Õ¥¡¥¤¥ë¤Ï %u ¸Ä¤Î¥Ñ¥é¥á¥¿¤¬¤¢¤ê¤Þ¤¹¤¬¡¢%u °Ê¾å¤Ï°·¤¨¤Þ¤»¤ó"
 
-#: tie-engraver.cc:211 tie-performer.cc:173
+#. How to shut up this warning, when no notes appeared because
+#. they were suicided by Thread_devnull_engraver?
+#: tie-engraver.cc:215 tie-performer.cc:173
 msgid "No ties were created!"
 msgstr "ºî¤é¤ì¤¿¥¿¥¤¤¬¤¢¤ê¤Þ¤»¤ó!"
 
-#: tie-engraver.cc:230
+#: tie-engraver.cc:234
 msgid "lonely tie"
 msgstr "°ì¤Ä¤À¤±¤Î¥¿¥¤"
 
@@ -900,21 +937,21 @@ msgstr "
 msgid "unknown translator: `%s'"
 msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
 
-#: translator-def.cc:96
+#: translator-def.cc:99
 msgid "Program has no such type"
 msgstr "¥×¥í¥°¥é¥à¤Ë¤Ï¤½¤ÎÍͤʥ¿¥¤¥×¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: translator-def.cc:102
+#: translator-def.cc:105
 #, c-format
 msgid "Already contains: `%s'"
 msgstr "´û¤Ë´Þ¤ó¤Ç¤¤¤Þ¤¹: `%s'"
 
-#: translator-def.cc:103
+#: translator-def.cc:106
 #, fuzzy, c-format
 msgid "Not adding translator: `%s'"
 msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
 
-#: translator-def.cc:215
+#: translator-def.cc:224
 #, fuzzy, c-format
 msgid "can't find: `%s'"
 msgstr "¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
@@ -929,19 +966,19 @@ msgstr "`%2$s' 
 msgid "can't find or create: `%s'"
 msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
 
-#: translator-group.cc:403
+#: translator-group.cc:414
 #, c-format
 msgid ""
 "Can't find property type-check for `%s'.  Perhaps you made a typing error?"
 msgstr ""
 
-#: translator-group.cc:417
+#: translator-group.cc:428
 #, c-format
 msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
 
 #. programming_error?
-#: translator-group.cc:436
+#: translator-group.cc:447
 msgid "ly-get-trans-property: expecting a Translator_group argument"
 msgstr ""
 
@@ -962,114 +999,184 @@ msgstr ""
 msgid "Oldest supported input version: %s"
 msgstr "°ìÈָŤ¤ÆþÎϲÄǽ¥Ð¡¼¥¸¥ç¥ó: %s"
 
-#: parser.yy:471
+#: parser.yy:473
 msgid "Wrong type for property value"
 msgstr "°À­ÃͤؤΥ¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
 
-#: parser.yy:666
+#: parser.yy:672
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr "·«¤êÊÖ¤·¤è¤ê¤âÁªÂò»è¤¬Â¿¤¤¡£Ä¶²áʬ¤ò¼Î¤Æ¤Þ¤¹¡£"
 
-#: parser.yy:730
+#: parser.yy:736
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:735
+#: parser.yy:741
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1211
+#: parser.yy:1236
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1221
+#: parser.yy:1246
 msgid "Can't specify direction for this request"
 msgstr "¤³¤ÎÍ×µá¤ËÂФ¹¤ëÊý¸þ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
 
-#: parser.yy:1353
+#: parser.yy:1371
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1364
+#: parser.yy:1382
 #, fuzzy
 msgid "Must have duration object"
 msgstr "²»Ä¹¤òºÇ¾®¤ËÀßÄꤷ¤Þ¤¹"
 
-#: parser.yy:1373 parser.yy:1381 parser.yy:1661
+#: parser.yy:1391 parser.yy:1399 parser.yy:1679
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "²Î»ì¤Ï Lyric ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
 
-#: parser.yy:1546 parser.yy:1575
+#: parser.yy:1564 parser.yy:1593
 #, c-format
 msgid "not a duration: %d"
 msgstr "²»Ä¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %d"
 
-#: parser.yy:1584
+#: parser.yy:1602
 msgid "Have to be in Note mode for notes"
 msgstr "²»Éä¤Ï Note ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
 
-#: parser.yy:1680
+#: parser.yy:1698
 msgid "Have to be in Chord mode for chords"
 msgstr "¥³¡¼¥É¤Ï Chord ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
 
-#: parser.yy:1842 parser.yy:1860
+#: parser.yy:1860 parser.yy:1878
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1846
+#: parser.yy:1864
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:165
+#: lexer.ll:166
 msgid "EOF found inside a comment"
 msgstr "¥³¥á¥ó¥ÈÆâ¤Ë EOF ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
 
-#: lexer.ll:179
+#: lexer.ll:180
 msgid "\\maininput disallowed outside init files"
 msgstr "½é´ü²½¥Õ¥¡¥¤¥ë¤Î³°¤Ç¤Ï \\maininput ¤òµ­½Ò¤Ç¤­¤Þ¤»¤ó"
 
-#: lexer.ll:203
+#: lexer.ll:204
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "̤ÄêµÁ¤Î¼±ÊÌ»Ò: `%s'"
 
 #. backup rule
-#: lexer.ll:208
+#: lexer.ll:209
 msgid "Missing end quote"
 msgstr "½ªÎ»¥¯¥ª¡¼¥È¤¬¤¢¤ê¤Þ¤»¤ó"
 
 #. backup rule
-#: lexer.ll:230 lexer.ll:234
+#: lexer.ll:231 lexer.ll:235
 msgid "white expected"
 msgstr "¶õÇò¤¬É¬ÍפǤ¹"
 
-#: lexer.ll:243
+#: lexer.ll:244
 msgid "Can't evaluate Scheme in safe mode"
 msgstr "°ÂÁ´¥â¡¼¥É¤Ç¤Ï Scheme ¤Îɾ²Á¤ò¤Ç¤­¤Þ¤»¤ó"
 
-#: lexer.ll:335
+#: lexer.ll:336
 msgid "Brace found at end of lyric. Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:439
+#: lexer.ll:440
 #, c-format
 msgid "invalid character: `%c'"
 msgstr "̵¸ú¤Êʸ»ú: `%c'"
 
-#: lexer.ll:520
+#: lexer.ll:521
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×ʸ»úÎó: `\\%s'"
 
-#: lexer.ll:602
+#: lexer.ll:603
 #, fuzzy, c-format
 msgid "incorrect lilypond version: %s (%s, %s)"
 msgstr "´Ö°ã¤Ã¤¿ mudela ¥Ð¡¼¥¸¥ç¥ó: %s (%s, %s)"
 
-#: lexer.ll:603
+#: lexer.ll:604
 msgid "Consider converting the input with the convert-ly script"
 msgstr ""
 
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr "»Íʬ¤ÎÃæ¤Ë #32: %d"
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "Lily output to %s..."
+msgstr "Lily ¤Ï %s ¤Ë½ÐÎϤ·¤Þ¤¹..."
+
+#: lilypond-score.cc:119
+#, c-format
+msgid "track %d:"
+msgstr "¥È¥é¥Ã¥¯ %d:"
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "½èÍýÃæ..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "²»À¼¤òºîÀ®Ãæ..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "¥È¥é¥Ã¥¯ "
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "¥Æ¥ó¥Ý¤Î¥Õ¥£¥ë¥¿¤ò¤·¤Þ¤»¤ó..."
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤»¤ó..."
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤¹..."
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr "¥«¥é¥à¤ò·èÄꤷ¤Þ¤¹..."
+
+#: 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 "lily indent level: %d"
+
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "%s Creator: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% Automatically generated"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% from input file: "
+
 #: main.cc:93
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr "Àµ³Î¤Ê²»Ä¹¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£Îã: a4*385/384"
@@ -1115,6 +1222,10 @@ msgstr "DUR"
 msgid "set smallest duration"
 msgstr "²»Ä¹¤òºÇ¾®¤ËÀßÄꤷ¤Þ¤¹"
 
+#: main.cc:103
+msgid "don't timestamp the output"
+msgstr "½ÐÎϤ˥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¤Ä¤±¤Ê¤¤"
+
 #: main.cc:105
 msgid "be verbose"
 msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹"
@@ -1129,7 +1240,8 @@ msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]"
 
 #: main.cc:116
-msgid "Translate MIDI-file to mudela"
+#, fuzzy
+msgid "Translate MIDI-file to lilypond"
 msgstr "MIDI ¥Õ¥¡¥¤¥ë¤ò mudela ¤ËÊÑ´¹¤·¤Þ¤¹"
 
 #: main.cc:130
@@ -1207,76 +1319,6 @@ msgstr "MIDI 
 msgid "invalid track length"
 msgstr "̵¸ú¤Ê¥È¥é¥Ã¥¯Ä¹¤Ç¤¹"
 
-#: mudela-item.cc:161
-#, c-format
-msgid "#32 in quarter: %d"
-msgstr "»Íʬ¤ÎÃæ¤Ë #32: %d"
-
-#: mudela-score.cc:108
-#, c-format
-msgid "Lily output to %s..."
-msgstr "Lily ¤Ï %s ¤Ë½ÐÎϤ·¤Þ¤¹..."
-
-#: mudela-score.cc:119
-#, c-format
-msgid "track %d:"
-msgstr "¥È¥é¥Ã¥¯ %d:"
-
-#: mudela-score.cc:155
-msgid "Processing..."
-msgstr "½èÍýÃæ..."
-
-#: mudela-score.cc:164
-msgid "Creating voices..."
-msgstr "²»À¼¤òºîÀ®Ãæ..."
-
-#: mudela-score.cc:168
-msgid "track "
-msgstr "¥È¥é¥Ã¥¯ "
-
-#: mudela-score.cc:177
-msgid "NOT Filtering tempo..."
-msgstr "¥Æ¥ó¥Ý¤Î¥Õ¥£¥ë¥¿¤ò¤·¤Þ¤»¤ó..."
-
-#: mudela-score.cc:186
-msgid "NOT Quantifying columns..."
-msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤»¤ó..."
-
-#: mudela-score.cc:190
-msgid "Quantifying columns..."
-msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤¹..."
-
-#: mudela-score.cc:223
-msgid "Settling columns..."
-msgstr "¥«¥é¥à¤ò·èÄꤷ¤Þ¤¹..."
-
-#: mudela-staff.cc:209
-msgid "% MIDI copyright:"
-msgstr "% MIDI copyright:"
-
-#: mudela-staff.cc:210
-msgid "% MIDI instrument:"
-msgstr "% MIDI instrument:"
-
-#: mudela-stream.cc:37
-#, c-format
-msgid "lily indent level: %d"
-msgstr "lily indent level: %d"
-
-#. Maybe better not to translate these?
-#: mudela-stream.cc:83
-msgid "% Creator: "
-msgstr "%s Creator: "
-
-#: mudela-stream.cc:88
-msgid "% Automatically generated"
-msgstr "% Automatically generated"
-
-#: mudela-stream.cc:97
-#, c-format
-msgid "% from input file: "
-msgstr "% from input file: "
-
 #, fuzzy
 #~ msgid "Dependency file left in `%s'"
 #~ msgstr "°Í¸´Ø·¸¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß: `%s'..."
@@ -1421,9 +1463,6 @@ msgstr "% from input file: "
 #~ msgid "No key name, assuming `C'"
 #~ msgstr "¥­¡¼Ì¾¤¬¤¢¤ê¤Þ¤»¤ó¡¢`C' ¤ò»î¤ß¤Þ¤¹"
 
-#~ msgid "Don't know how handle empty keys"
-#~ msgstr "¶õ¤Î¥­¡¼¤Î°·¤¤Êý¤¬È½¤ê¤Þ¤»¤ó"
-
 #~ msgid "Don't have that many octaves (%s)"
 #~ msgstr "¤½¤ó¤Ê¤ËÂô»³¤Î¥ª¥¯¥¿¡¼¥Ö (%s) ¤ò»È¤ï¤Ê¤¤¤Ç¤¯¤À¤µ¤¤"
 
index f1360089e143763265e7623a6501a16a6cbe6585..ac3781601d4cbdb6ae1d269d7e1fa1f658200dba 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-03-20 23:05+0100\n"
+"POT-Creation-Date: 2001-03-21 16:06+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -71,7 +71,7 @@ msgstr ""
 msgid "Reading %s..."
 msgstr ""
 
-#: ly2dvi.py:153 mapped-file-storage.cc:87 mudela-stream.cc:111
+#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87
 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
 #, c-format
 msgid "can't open file: `%s'"
@@ -634,7 +634,7 @@ msgstr ""
 msgid "paper output to %s..."
 msgstr ""
 
-#: mudela-stream.cc:93 paper-outputter.cc:85 performance.cc:95
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95
 msgid ", at "
 msgstr ""
 
@@ -1033,6 +1033,76 @@ msgstr ""
 msgid "Consider converting the input with the convert-ly script"
 msgstr ""
 
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr ""
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "Lily output to %s..."
+msgstr ""
+
+#: lilypond-score.cc:119
+#, c-format
+msgid "track %d:"
+msgstr ""
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr ""
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr ""
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr ""
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr ""
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr ""
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr ""
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr ""
+
+#: lilypond-staff.cc:209
+msgid "% MIDI copyright:"
+msgstr ""
+
+#: lilypond-staff.cc:210
+msgid "% MIDI instrument:"
+msgstr ""
+
+#: lilypond-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr ""
+
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr ""
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr ""
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr ""
+
 #: main.cc:93
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr ""
@@ -1095,7 +1165,7 @@ msgid "Usage: %s [OPTION]... [FILE]"
 msgstr ""
 
 #: main.cc:116
-msgid "Translate MIDI-file to mudela"
+msgid "Translate MIDI-file to lilypond"
 msgstr ""
 
 #: main.cc:130
@@ -1171,73 +1241,3 @@ msgstr ""
 #: midi-track-parser.cc:353
 msgid "invalid track length"
 msgstr ""
-
-#: mudela-item.cc:161
-#, c-format
-msgid "#32 in quarter: %d"
-msgstr ""
-
-#: mudela-score.cc:108
-#, c-format
-msgid "Lily output to %s..."
-msgstr ""
-
-#: mudela-score.cc:119
-#, c-format
-msgid "track %d:"
-msgstr ""
-
-#: mudela-score.cc:155
-msgid "Processing..."
-msgstr ""
-
-#: mudela-score.cc:164
-msgid "Creating voices..."
-msgstr ""
-
-#: mudela-score.cc:168
-msgid "track "
-msgstr ""
-
-#: mudela-score.cc:177
-msgid "NOT Filtering tempo..."
-msgstr ""
-
-#: mudela-score.cc:186
-msgid "NOT Quantifying columns..."
-msgstr ""
-
-#: mudela-score.cc:190
-msgid "Quantifying columns..."
-msgstr ""
-
-#: mudela-score.cc:223
-msgid "Settling columns..."
-msgstr ""
-
-#: mudela-staff.cc:209
-msgid "% MIDI copyright:"
-msgstr ""
-
-#: mudela-staff.cc:210
-msgid "% MIDI instrument:"
-msgstr ""
-
-#: mudela-stream.cc:37
-#, c-format
-msgid "lily indent level: %d"
-msgstr ""
-
-#. Maybe better not to translate these?
-#: mudela-stream.cc:83
-msgid "% Creator: "
-msgstr ""
-
-#: mudela-stream.cc:88
-msgid "% Automatically generated"
-msgstr ""
-
-#: mudela-stream.cc:97
-#, c-format
-msgid "% from input file: "
-msgstr ""
index 88669bfe39752c4bbfb2b466ce9537fd60361381..c61c02fa1e2ff0b390b5e74b134fd522e72af0ab 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -11,7 +11,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 1.3.59\n"
-"POT-Creation-Date: 2001-03-20 23:05+0100\n"
+"POT-Creation-Date: 2001-03-21 16:06+0100\n"
 "PO-Revision-Date: 2000-06-09 02:23+0200\n"
 "Last-Translator: Jan Nieuwenhuizen <janneke@gnu.org>\n"
 "Language-Team: Dutch <nl@li.org>\n"
@@ -20,8 +20,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Date: 1998-05-26 11:26:28+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:86 main.cc:95 main.cc:105
@@ -81,7 +80,7 @@ msgstr "Be
 msgid "Reading %s..."
 msgstr "Inlezen %s..."
 
-#: ly2dvi.py:153 mapped-file-storage.cc:87 mudela-stream.cc:111
+#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87
 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
 #, c-format
 msgid "can't open file: `%s'"
@@ -670,7 +669,7 @@ msgstr "Schroot verzoek: `%s'"
 msgid "paper output to %s..."
 msgstr "papier uitvoer naar %s..."
 
-#: mudela-stream.cc:93 paper-outputter.cc:85 performance.cc:95
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95
 msgid ", at "
 msgstr ", bij "
 
@@ -1074,6 +1073,76 @@ msgstr "verkeerde lilypond versie: %s (%s, %s)"
 msgid "Consider converting the input with the convert-ly script"
 msgstr "Overweeg de invoer te converteren met het convert-ly script"
 
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr "#32 in kwart: %d"
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "Lily output to %s..."
+msgstr "Lelie uitvoer naar %s..."
+
+#: lilypond-score.cc:119
+#, c-format
+msgid "track %d:"
+msgstr "spoor %d:"
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "Verwerken..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "Scheppen van stemmen..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "spoor "
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "NIET Filteren van tempo..."
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "NIET Kwantificeren van kolommen..."
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr "Kwantificeren van kolommen..."
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr "Zetten van kolommen..."
+
+#: 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 "lelie inspring diepte: %d"
+
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "% Schepper: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% Automatisch gegenereerd"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% van invoerbestand: "
+
 #: main.cc:93
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr "schrijf exacte duren, bijv.: a4*385/384"
@@ -1136,8 +1205,8 @@ msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "Gebruik: %s [OPTIE]... [BESTAND]"
 
 #: main.cc:116
-msgid "Translate MIDI-file to mudela"
-msgstr "Vertaal MIDI-bestand naar mudela"
+msgid "Translate MIDI-file to lilypond"
+msgstr "Vertaal MIDI-bestand naar lilypond"
 
 #: main.cc:130
 #, c-format
@@ -1212,73 +1281,3 @@ msgstr "MIDI spoor verwacht"
 #: midi-track-parser.cc:353
 msgid "invalid track length"
 msgstr "ongeldige spoorlengte"
-
-#: mudela-item.cc:161
-#, c-format
-msgid "#32 in quarter: %d"
-msgstr "#32 in kwart: %d"
-
-#: mudela-score.cc:108
-#, c-format
-msgid "Lily output to %s..."
-msgstr "Lelie uitvoer naar %s..."
-
-#: mudela-score.cc:119
-#, c-format
-msgid "track %d:"
-msgstr "spoor %d:"
-
-#: mudela-score.cc:155
-msgid "Processing..."
-msgstr "Verwerken..."
-
-#: mudela-score.cc:164
-msgid "Creating voices..."
-msgstr "Scheppen van stemmen..."
-
-#: mudela-score.cc:168
-msgid "track "
-msgstr "spoor "
-
-#: mudela-score.cc:177
-msgid "NOT Filtering tempo..."
-msgstr "NIET Filteren van tempo..."
-
-#: mudela-score.cc:186
-msgid "NOT Quantifying columns..."
-msgstr "NIET Kwantificeren van kolommen..."
-
-#: mudela-score.cc:190
-msgid "Quantifying columns..."
-msgstr "Kwantificeren van kolommen..."
-
-#: mudela-score.cc:223
-msgid "Settling columns..."
-msgstr "Zetten van kolommen..."
-
-#: mudela-staff.cc:209
-msgid "% MIDI copyright:"
-msgstr "% MIDI copyright:"
-
-#: mudela-staff.cc:210
-msgid "% MIDI instrument:"
-msgstr "% MIDI instrument:"
-
-#: mudela-stream.cc:37
-#, c-format
-msgid "lily indent level: %d"
-msgstr "lelie inspring diepte: %d"
-
-#. Maybe better not to translate these?
-#: mudela-stream.cc:83
-msgid "% Creator: "
-msgstr "% Schepper: "
-
-#: mudela-stream.cc:88
-msgid "% Automatically generated"
-msgstr "% Automatisch gegenereerd"
-
-#: mudela-stream.cc:97
-#, c-format
-msgid "% from input file: "
-msgstr "% van invoerbestand: "
index c3e560a74deed8d910423b71e6a0533991b0fc5a..084e6304ff03e44f19b9b953cde159d8df700cb4 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-03-06 12:36+0100\n"
+"POT-Creation-Date: 2001-03-21 16:06+0100\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"
@@ -14,115 +14,135 @@ msgstr ""
 "Content-Type: text/plain; charset=koi8-r\n"
 "Content-Transfer-Encoding: ENCODING\n"
 
-#: ly2dvi.py:67 main.cc:95 main.cc:109
+#: ly2dvi.py:86 main.cc:95 main.cc:105
 msgid "this help"
 msgstr "ÜÔÁ ÓÐÒÁ×ËÁ"
 
-#: ly2dvi.py:68
+#: ly2dvi.py:87
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:69
+#: ly2dvi.py:88
 msgid "generate PostScript output"
 msgstr ""
 
-#: ly2dvi.py:70
+#: ly2dvi.py:89
 msgid "keep all output, and name the directory ly2dvi.dir"
 msgstr ""
 
-#: ly2dvi.py:71
+#: ly2dvi.py:90
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:72 main.cc:104 main.cc:119
+#: ly2dvi.py:91 main.cc:115
+#, fuzzy
+msgid "verbose"
+msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ"
+
+#: ly2dvi.py:92 main.cc:104 main.cc:114
 msgid "print version number"
 msgstr "×Ù×ÏÄÉÔØ ÎÏÍÅÒ ×ÅÒÓÉÉ"
 
-#: ly2dvi.py:73 main.cc:106 main.cc:121
+#: ly2dvi.py:93 main.cc:106 main.cc:116
 msgid "show warranty and copyright"
 msgstr "ÐÏËÁÚÁÔØ ÇÁÒÁÎÔÉÀ É copyright"
 
-#: ly2dvi.py:74
+#: ly2dvi.py:94
 msgid "dump all final output into DIR"
 msgstr ""
 
-#: ly2dvi.py:75 main.cc:113
+#: ly2dvi.py:95 main.cc:109
 msgid "write Makefile dependencies for every input file"
 msgstr "ÚÁÐÉÓÙ×ÁÔØ ÚÁ×ÉÓÉÍÏÓÔÉ Makefile ÄÌÑ ËÁÖÄÏÇÏ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ"
 
-#: ly2dvi.py:101
+#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23
+msgid "warning: "
+msgstr "ÐÒÅÄÕÐÒÅÖÄÁÀ: "
+
+#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17
+msgid "error: "
+msgstr "ÏÛÉÂËÁ: "
+
+#: ly2dvi.py:130
 msgid "Exiting ... "
 msgstr ""
 
-#: ly2dvi.py:120
+#: ly2dvi.py:149
 #, fuzzy, c-format
-msgid "Reading `%s'"
+msgid "Reading %s..."
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
 
-#: ly2dvi.py:124 mapped-file-storage.cc:87 mudela-stream.cc:111
+#: lilypond-stream.cc:111 ly2dvi.py:153 mapped-file-storage.cc:87
 #: paper-stream.cc:40 scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
 #, c-format
 msgid "can't open file: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ: `%s'"
 
-#: ly2dvi.py:187
+#: ly2dvi.py:216
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]"
 
-#: ly2dvi.py:189
+#: ly2dvi.py:218
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
-#: ly2dvi.py:191 main.cc:119 main.cc:151
+#: ly2dvi.py:220 main.cc:119 main.cc:146
 msgid "Options:"
 msgstr "ïÐÃÉÉ:"
 
-#: data-file.cc:118 input.cc:85 ly2dvi.py:195 midi-parser.cc:100 warn.cc:23
-msgid "warning: "
-msgstr "ÐÒÅÄÕÐÒÅÖÄÁÀ: "
-
-#: ly2dvi.py:196
+#: ly2dvi.py:224
 msgid "all output is written in the CURRENT directory"
 msgstr ""
 
-#: ly2dvi.py:198 main.cc:123 main.cc:174
+#: ly2dvi.py:226 main.cc:123 main.cc:169
 #, c-format
 msgid "Report bugs to %s"
 msgstr "óÏÏÂÝÁÊÔÅ Ï ÏÛÉÂËÁÈ ÐÏ %s"
 
-#: ly2dvi.py:230
+#: ly2dvi.py:260
 #, fuzzy, c-format
 msgid "Invoking `%s'"
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
 
-#: input.cc:90 ly2dvi.py:234 warn.cc:9 warn.cc:17
-msgid "error: "
-msgstr "ÏÛÉÂËÁ: "
-
-#: ly2dvi.py:234
+#: ly2dvi.py:263
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:236
+#: ly2dvi.py:265
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:277
+#: ly2dvi.py:301
+#, fuzzy, c-format
+msgid "no such setting: %s"
+msgstr "ÎÅÔ ÔÁËÏÇÏ ÉÎÓÔÒÕÍÅÎÔÁ: `%s'"
+
+#: ly2dvi.py:309
 #, c-format
 msgid "Analyzing `%s'"
 msgstr ""
 
-#: ly2dvi.py:539 scores.cc:44
+#: ly2dvi.py:353
+#, c-format
+msgid "no lilypond output found for %s"
+msgstr ""
+
+#: ly2dvi.py:395
+#, fuzzy, c-format
+msgid "invalid value: %s"
+msgstr "ÎÅ×ÅÒÎÙÊ ÓÉÍ×ÏÌ: `%c'"
+
+#: ly2dvi.py:602 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to %s..."
 msgstr "\"ÂÕÍÁÖÎÙÊ\" ×Ù×ÏÄ × %s..."
 
-#: ly2dvi.py:540
-#, c-format
-msgid "%s file left in `%s'"
-msgstr ""
+#: ly2dvi.py:603
+#, fuzzy, c-format
+msgid "%s output to %s..."
+msgstr "×Ù×ÏÄ MIDI × %s..."
 
 #: data-file.cc:54
 msgid "EOF in a string"
@@ -226,12 +246,12 @@ msgstr "
 msgid "can't find default font: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÛÒÉÆÔ ÐÏ ÕÍÏÌÞÁÎÉÀ: `%s'"
 
-#: all-font-metrics.cc:172 includable-lexer.cc:50 scores.cc:137
+#: all-font-metrics.cc:172 includable-lexer.cc:51 scores.cc:137
 #, c-format
 msgid "(search path: `%s')"
 msgstr "(ÐÕÔØ ÐÏÉÓËÁ: `%s')"
 
-#: all-font-metrics.cc:173 parser.yy:1663
+#: all-font-metrics.cc:173 parser.yy:1681
 msgid "Giving up"
 msgstr "óÄÁÀÓØ"
 
@@ -306,7 +326,7 @@ msgstr "
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
-#: chord-tremolo-engraver.cc:141
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:162
 msgid "unterminated chord tremolo"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÔÒÅÍÏÌÏ ÁËËÏÒÄÁ"
 
@@ -315,7 +335,7 @@ msgstr "
 msgid "no one to print a tremolos"
 msgstr "ÎÅËÏÍÕ ÒÉÓÏ×ÁÔØ ÓËÏÂÕ ÐÏ×ÔÏÒÁ"
 
-#: collision.cc:116
+#: collision.cc:118
 msgid "Too many clashing notecolumns.  Ignoring them."
 msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ÐÅÒÅÓÅËÁÀÝÉÈÓÑ ÓÔÏÌÂÃÏ× ÎÏÔ. éÇÎÏÒÉÒÕÀ."
 
@@ -343,7 +363,7 @@ msgstr "
 msgid "already have a decrescendo"
 msgstr "ÄÅËÒÅÝÅÎÄÏ ÕÖÅ ÅÓÔØ"
 
-#: dynamic-engraver.cc:307
+#: dynamic-engraver.cc:318
 msgid "unterminated (de)crescendo"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ (ÄÅ)ËÒÅÝÅÎÄÏ"
 
@@ -359,7 +379,7 @@ msgstr "
 msgid "no one to print a repeat brace"
 msgstr "ÎÅËÏÍÕ ÒÉÓÏ×ÁÔØ ÓËÏÂÕ ÐÏ×ÔÏÒÁ"
 
-#: font-interface.cc:220
+#: font-interface.cc:237
 msgid "couldn't find any font satisfying "
 msgstr ""
 
@@ -392,7 +412,7 @@ msgstr "
 msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
 msgstr "îÅ Ë ÞÅÍÕ ÐÒÉÓÏÅÄÉÎÉÔØ ÐÅÒÅÎÏÓ ÓÌÅ×Á. éÇÎÏÒÉÒÕÀ ÚÁÐÒÏÓ ÐÅÒÅÎÏÓÁ."
 
-#: includable-lexer.cc:48 lily-guile.cc:139 midi-score-parser.cc:24
+#: includable-lexer.cc:49 lily-guile.cc:139 midi-score-parser.cc:24
 #: scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
@@ -429,88 +449,83 @@ msgstr ""
 msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:108
+#: main.cc:104
 msgid "EXT"
 msgstr "òáóû"
 
-#: main.cc:108
+#: main.cc:104
 #, fuzzy
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr "ÉÓÐÏÌØÚÏ×ÁÔØ ×ÙÈÏÄÎÏÊ ÆÏÒÍÁÔ òáóû"
 
-#: main.cc:110
+#: main.cc:106
 #, fuzzy
 msgid "FIELD"
 msgstr "æáêì"
 
-#: main.cc:110
+#: main.cc:106
 msgid "write header field to BASENAME.FIELD"
 msgstr ""
 
-#: main.cc:111 main.cc:114
+#: main.cc:107 main.cc:110
 msgid "DIR"
 msgstr "ëáô"
 
-#: main.cc:111
+#: main.cc:107
 msgid "add DIR to search path"
 msgstr "ÄÏÂÁ×ÉÔØ ëáô Ë ÐÕÔÉ ÐÏÉÓËÁ"
 
-#: main.cc:98 main.cc:112
+#: main.cc:98 main.cc:108
 msgid "FILE"
 msgstr "æáêì"
 
-#: main.cc:112
+#: main.cc:108
 msgid "use FILE as init file"
 msgstr "ÉÓÐÏÌØÚÏ×ÁÔØ æáêì ËÁË ÆÁÊÌ ÉÎÉÃÉÁÌÉÚÁÃÉÉ"
 
-#: main.cc:114
+#: main.cc:110
 msgid "prepend DIR to dependencies"
 msgstr ""
 
-#: main.cc:115
+#: main.cc:111
 msgid "produce MIDI output only"
 msgstr "ÐÒÏÉÚ×ÏÄÉÔØ ×Ù×ÏÄ ÔÏÌØËÏ MIDI"
 
-#: main.cc:116
+#: main.cc:112
 #, fuzzy
 msgid "NAME"
 msgstr "ïóîï÷á"
 
-#: main.cc:116
+#: main.cc:112
 #, fuzzy
 msgid "write output to NAME"
 msgstr "ÚÁÐÉÓÙ×ÁÔØ ×Ù×ÏÄ × ïóîï÷á[-x].ÒÁÓÛÉÒÅÎÉÅ"
 
-#: main.cc:117
+#: main.cc:113
 msgid "inhibit file output naming and exporting"
 msgstr "ÓËÒÙÔØ ÉÍÅÎÏ×ÁÎÉÅ É ÜËÓÐÏÒÔ ×Ù×ÏÄÁ × ÆÁÊÌ"
 
-#: main.cc:103 main.cc:118
-msgid "don't timestamp the output"
-msgstr "ÎÅ ÏÔÍÅÞÁÔØ ÄÁÔÕ É ×ÒÅÍÑ ×Ù×ÏÄÁ"
-
-#: main.cc:120
-#, fuzzy
-msgid "verbose"
-msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ"
+#: main.cc:117
+msgid "EXPR"
+msgstr ""
 
-#: main.cc:122
-msgid "write midi ouput in formatted ascii"
+#: main.cc:117
+msgid "evalute EXPR as Scheme after .scm init is read"
 msgstr ""
 
 #.
 #. No version number or newline here. It confuses help2man
 #.
-#: main.cc:139
+#: main.cc:134
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]..."
 
-#: main.cc:141
+#: main.cc:136
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "îÁÂÉÒÁÔØ ÍÕÚÙËÕ É/ÉÌÉ ÐÒÏÉÇÒÙ×ÁÔØ MIDI ÉÚ æáêìÁ"
 
-#: main.cc:145
+#: main.cc:140
 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"
@@ -520,11 +535,11 @@ msgstr ""
 "ÎÁ ÂÕÍÁÇÅ, ÉÓÐÏÌØÚÕÑ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÙÊ ÆÁÊÌ ÏÐÉÓÁÎÉÑ ÎÁ ××ÏÄÅ. Lilypond\n"
 "Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ ðÒÏÅËÔÁ GNU.\n"
 
-#: main.cc:155
+#: main.cc:150
 msgid "This binary was compiled with the following options:"
 msgstr "üÔÏÔ ÉÓÐÏÌÎÑÅÍÙÊ ÆÁÊÌ ÂÙÌ ÓÏÂÒÁΠÓÏ ÓÌÅÄÕÀÝÉÍÉ ÏÐÃÉÑÍÉ:"
 
-#: main.cc:55 main.cc:182
+#: main.cc:55 main.cc:177
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -536,17 +551,17 @@ msgstr ""
 "ÐÒÉ ÓÏÂÌÀÄÅÎÉÉ ÎÅËÏÔÏÒÙÈ ÕÓÌÏ×ÉÊ. ÷ÙÚÙ×ÁÊÔÅ ËÁË `%s --warranty' ÄÌÑ\n"
 "ÐÏÌÕÞÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n"
 
-#: main.cc:62 main.cc:189 main.cc:201
+#: main.cc:62 main.cc:184 main.cc:196
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "÷ÓÅ ÐÒÁ×Á ÚÁÝÉÝÅÎÙ (c) %s by"
 
-#: main.cc:199
+#: main.cc:194
 #, fuzzy
 msgid "GNU LilyPond -- The music typesetter"
 msgstr "GNU LilyPond -- îÁÂÏÒÝÉË ÍÕÚÙËÉ ðÒÏÅËÔÁ GNU"
 
-#: main.cc:71 main.cc:207
+#: main.cc:71 main.cc:202
 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"
@@ -581,29 +596,37 @@ msgstr "
 msgid "Transposition by %s makes accidental larger than two"
 msgstr ""
 
-#: music.cc:222
+#: music.cc:224
 msgid "ly_get_mus_property (): Not a Music"
 msgstr ""
 
-#: music.cc:236
+#: music.cc:238
 msgid "ly_set_mus_property (): Not a symbol"
 msgstr ""
 
-#: music.cc:248
+#: music.cc:250
 msgid "ly_set_mus_property ():  not of type Music"
 msgstr ""
 
+#: music.cc:264
+msgid "ly_make_music (): Not a string"
+msgstr ""
+
+#: music.cc:284
+msgid "ly_music_name (): Not a music expression"
+msgstr ""
+
 #: music-output-def.cc:115
 #, c-format
 msgid "can't find `%s' context"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ËÏÎÔÅËÓÔ `%s'"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:138
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "éÍÑ ËÏÍÁÎÄÙ Ñ×ÌÑÅÔÓÑ ËÌÀÞÅ×ÙÍ ÓÌÏ×ÏÍ: `%s'"
 
-#: my-lily-lexer.cc:157
+#: my-lily-lexer.cc:158
 #, c-format
 msgid "error at EOF: %s"
 msgstr "ÏÛÍÂËÁ × ËÏÎÃÅ ÆÁÊÌÁ: %s"
@@ -612,7 +635,7 @@ msgstr "
 msgid "Parsing..."
 msgstr "òÁÚÂÉÒÁÀ..."
 
-#: my-lily-parser.cc:55
+#: my-lily-parser.cc:57
 msgid "Braces don't match"
 msgstr "æÉÇÕÒÎÙÅ ÓËÏÂËÉ ÎÅ ÓÏ×ÐÁÄÁÀÔ"
 
@@ -626,11 +649,11 @@ msgstr "
 msgid "paper output to %s..."
 msgstr "\"ÂÕÍÁÖÎÙÊ\" ×Ù×ÏÄ × %s..."
 
-#: mudela-stream.cc:93 paper-outputter.cc:94 performance.cc:102
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:95
 msgid ", at "
 msgstr ", ×"
 
-#: paper-outputter.cc:245
+#: paper-outputter.cc:232
 #, fuzzy, c-format
 msgid "writing header field %s to %s..."
 msgstr "úÁÐÉÓÙ×ÁÀ ÆÁÊÌ ÚÁ×ÉÓÉÍÏÓÔÅÊ: `%s'..."
@@ -639,7 +662,7 @@ msgstr "
 msgid "Preprocessing elements..."
 msgstr "ðÒÅÄ×ÁÒÉÔÅÌØÎÏ ÏÂÒÁÂÁÔÙ×ÁÀ ÜÌÅÍÅÎÔÙ..."
 
-#: paper-score.cc:113
+#: paper-score.cc:114
 msgid "Outputting Score, defined at: "
 msgstr ""
 
@@ -668,6 +691,16 @@ msgstr "
 msgid "none of these in my family: `%s'"
 msgstr "ÏÎÉ ÍÎÅ ÎÅ ÒÏÄÓÔ×ÅÎÎÉËÉ"
 
+#: percent-repeat-engraver.cc:108
+#, fuzzy
+msgid "Don't know yet how to handle this percent repeat."
+msgstr "îÅ ÚÎÁÀ, ÞÔÏ ÄÅÌÁÔØ Ó ÐÕÓÔÙÍÉ ËÌÀÞÁÍÉ"
+
+#: percent-repeat-iterator.cc:53
+#, fuzzy
+msgid "no one to print a percent"
+msgstr "ÎÅËÏÍÕ ÒÉÓÏ×ÁÔØ ÓËÏÂÕ ÐÏ×ÔÏÒÁ"
+
 #: performance.cc:51
 msgid "Track ... "
 msgstr "äÏÒÏÖËÁ ..."
@@ -676,12 +709,12 @@ msgstr "
 msgid "Creator: "
 msgstr "óÏÚÄÁÔÅÌØ: "
 
-#: performance.cc:116
+#: performance.cc:109
 #, c-format
 msgid "from musical definition: %s"
 msgstr "ÉÚ ÍÕÚÙËÁÌØÎÏÊ ÎÏÔÁÃÉÉ %s"
 
-#: performance.cc:171
+#: performance.cc:164
 #, c-format
 msgid "MIDI output to %s..."
 msgstr "×Ù×ÏÄ MIDI × %s..."
@@ -744,7 +777,7 @@ msgstr "
 msgid "elapsed time: %.2f seconds"
 msgstr "ÚÁÔÒÁÞÅÎÎÏÅ ×ÒÅÍÑ: %.2f ÓÅËÕÎÄ"
 
-#: score-engraver.cc:177
+#: score-engraver.cc:183
 #, c-format
 msgid "unbound spanner `%s'"
 msgstr ""
@@ -781,7 +814,9 @@ msgstr "
 msgid "unterminated slur"
 msgstr "ÎÅÚÁ×ÅÒÛÅÎÎÁÑ ÌÉÇÁ"
 
-#: slur-engraver.cc:142
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start request?
+#: slur-engraver.cc:144
 #, fuzzy
 msgid "can't find start of slur"
 msgstr "ÞÔÏ-ÔÏ ÎÅ ÎÁÊÄÕ ÎÁÞÁÌÏ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ"
@@ -819,21 +854,23 @@ msgstr "
 msgid "can't find ascii character: %d"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÓÉÍ×ÏÌ ASCII: `%d'"
 
-#: tfm-reader.cc:105
+#: tfm-reader.cc:106
 #, c-format
-msgid "TFM header of `%s' has only %u word(s)"
+msgid "TFM header of `%s' has only %u word (s)"
 msgstr ""
 
-#: tfm-reader.cc:139
+#: tfm-reader.cc:140
 #, c-format
 msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
 msgstr ""
 
-#: tie-engraver.cc:211 tie-performer.cc:173
+#. How to shut up this warning, when no notes appeared because
+#. they were suicided by Thread_devnull_engraver?
+#: tie-engraver.cc:215 tie-performer.cc:173
 msgid "No ties were created!"
 msgstr ""
 
-#: tie-engraver.cc:230
+#: tie-engraver.cc:234
 msgid "lonely tie"
 msgstr ""
 
@@ -851,21 +888,21 @@ msgstr ""
 msgid "unknown translator: `%s'"
 msgstr ""
 
-#: translator-def.cc:96
+#: translator-def.cc:99
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-def.cc:102
+#: translator-def.cc:105
 #, c-format
 msgid "Already contains: `%s'"
 msgstr "õÖÅ ÓÏÄÅÒÖÉÔ: `%s'"
 
-#: translator-def.cc:103
+#: translator-def.cc:106
 #, c-format
 msgid "Not adding translator: `%s'"
 msgstr ""
 
-#: translator-def.cc:215
+#: translator-def.cc:224
 #, c-format
 msgid "can't find: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ: `%s'"
@@ -880,19 +917,19 @@ msgstr ""
 msgid "can't find or create: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÉÌÉ ÓÏÚÄÁÔØ: `%s'"
 
-#: translator-group.cc:403
+#: translator-group.cc:414
 #, c-format
 msgid ""
 "Can't find property type-check for `%s'.  Perhaps you made a typing error?"
 msgstr ""
 
-#: translator-group.cc:417
+#: translator-group.cc:428
 #, c-format
 msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr ""
 
 #. programming_error?
-#: translator-group.cc:436
+#: translator-group.cc:447
 msgid "ly-get-trans-property: expecting a Translator_group argument"
 msgstr ""
 
@@ -913,114 +950,184 @@ msgstr ""
 msgid "Oldest supported input version: %s"
 msgstr ""
 
-#: parser.yy:471
+#: parser.yy:473
 msgid "Wrong type for property value"
 msgstr ""
 
-#: parser.yy:666
+#: parser.yy:672
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:730
+#: parser.yy:736
 msgid "Second argument must be a symbol"
 msgstr "÷ÔÏÒÏÊ ÁÒÇÕÍÅÎÔ ÄÏÌÖÅΠÂÙÔØ ÓÉÍ×ÏÌÏÍ"
 
-#: parser.yy:735
+#: parser.yy:741
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1211
+#: parser.yy:1236
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1221
+#: parser.yy:1246
 msgid "Can't specify direction for this request"
 msgstr "îÅ ÍÏÇÕ ÕËÁÚÁÔØ ÎÁÐÒÁ×ÌÅÎÉÅ ÄÌÑ ÜÔÏÇÏ ÚÁÐÒÏÓÁ"
 
-#: parser.yy:1353
+#: parser.yy:1371
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1364
+#: parser.yy:1382
 #, fuzzy
 msgid "Must have duration object"
 msgstr "ÕÓÔÁÎÏ×ÉÔØ ÎÁÉÍÅÎØÛÕÀ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ"
 
-#: parser.yy:1373 parser.yy:1381 parser.yy:1661
+#: parser.yy:1391 parser.yy:1399 parser.yy:1679
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "äÏÌÖÅΠÂÙÔØ × ìÉÒÉÞÅÓËÏÍ ÒÅÖÉÍÅ ÄÌÑ ÌÉÒÉËÉ"
 
-#: parser.yy:1546 parser.yy:1575
+#: parser.yy:1564 parser.yy:1593
 #, c-format
 msgid "not a duration: %d"
 msgstr "ÎÅ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ: %d"
 
-#: parser.yy:1584
+#: parser.yy:1602
 msgid "Have to be in Note mode for notes"
 msgstr "äÏÌÖÅΠÂÙÔØ × îÏÔÎÏÍ ÒÅÖÉÍÅ ÄÌÑ ÎÏÔ"
 
-#: parser.yy:1680
+#: parser.yy:1698
 msgid "Have to be in Chord mode for chords"
 msgstr "äÏÌÖÅΠÂÙÔØ × áËËÏÒÄÎÏÍ ÒÅÖÉÍÅ ÄÌÑ ÁËËÏÒÄÏ×"
 
-#: parser.yy:1842 parser.yy:1860
+#: parser.yy:1860 parser.yy:1878
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1846
+#: parser.yy:1864
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:165
+#: lexer.ll:166
 msgid "EOF found inside a comment"
 msgstr "ëÏÎÅàÆÁÊÌÁ ×ÎÕÔÒÉ ËÏÍÍÅÎÔÁÒÉÑ"
 
-#: lexer.ll:179
+#: lexer.ll:180
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:203
+#: lexer.ll:204
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÍÅÔËÁ/ËÏÍÁÎÄÁ: `%s'"
 
 #. backup rule
-#: lexer.ll:208
+#: lexer.ll:209
 msgid "Missing end quote"
 msgstr "ïÔÓÕÔÓ×ÕÅÔ ÚÁËÌÀÞÉÔÅÌØÎÁÑ ËÁ×ÙÞËÁ"
 
 #. backup rule
-#: lexer.ll:230 lexer.ll:234
+#: lexer.ll:231 lexer.ll:235
 msgid "white expected"
 msgstr "× ÔÏ ×ÒÅÍÑ ËÁË ÏÖÉÄÁÌÏÓØ"
 
-#: lexer.ll:243
+#: lexer.ll:244
 msgid "Can't evaluate Scheme in safe mode"
 msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÑÔØ ËÏÄ ÓÈÅÍÙ × ÂÅÚÏÐÁÓÎÏÍ ÒÅÖÉÍÅ"
 
-#: lexer.ll:335
+#: lexer.ll:336
 msgid "Brace found at end of lyric. Did you forget a space?"
 msgstr ""
 
-#: lexer.ll:439
+#: lexer.ll:440
 #, c-format
 msgid "invalid character: `%c'"
 msgstr "ÎÅ×ÅÒÎÙÊ ÓÉÍ×ÏÌ: `%c'"
 
-#: lexer.ll:520
+#: lexer.ll:521
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `\\%s'"
 
-#: lexer.ll:602
+#: lexer.ll:603
 #, fuzzy, c-format
 msgid "incorrect lilypond version: %s (%s, %s)"
 msgstr "ÎÅ×ÅÒÎÁÑ ×ÅÒÓÉÑ mudela: %s (%s, %s)"
 
-#: lexer.ll:603
+#: lexer.ll:604
 msgid "Consider converting the input with the convert-ly script"
 msgstr ""
 
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr "#32 × ÞÅÔ×ÅÒÔÎÏÊ: %d"
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "Lily output to %s..."
+msgstr "Lily ×ÙÈÏÄ × %s..."
+
+#: lilypond-score.cc:119
+#, c-format
+msgid "track %d:"
+msgstr "ÄÏÒÏÖËÁ %d:"
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "ïÂÒÁÂÁÔÙ×ÁÀ..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "óÏÚÄÁÀ ÇÏÌÏÓÁ..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "ÄÏÒÏÖËÁ"
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr ""
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr ""
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr ""
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr ""
+
+#: lilypond-staff.cc:209
+msgid "% MIDI copyright:"
+msgstr "% MIDI copyright:"
+
+#: lilypond-staff.cc:210
+msgid "% MIDI instrument:"
+msgstr "% MIDI ÉÎÓÔÒÕÍÅÎÔ:"
+
+#: lilypond-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr "ÕÒÏ×ÅÎØ ÏÔÓÔÕÐÏ× lily: %d"
+
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "% óÏÚÄÁÔÅÌØ: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% á×ÔÏÍÁÔÉÞÅÓËÉ ÓÇÅÎÅÒÉÒÏ×ÁÎÏ"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% ÉÚ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ: "
+
 #: main.cc:93
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr ""
@@ -1066,6 +1173,10 @@ msgstr "
 msgid "set smallest duration"
 msgstr "ÕÓÔÁÎÏ×ÉÔØ ÎÁÉÍÅÎØÛÕÀ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ"
 
+#: main.cc:103
+msgid "don't timestamp the output"
+msgstr "ÎÅ ÏÔÍÅÞÁÔØ ÄÁÔÕ É ×ÒÅÍÑ ×Ù×ÏÄÁ"
+
 #: main.cc:105
 msgid "be verbose"
 msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ"
@@ -1080,7 +1191,8 @@ msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]"
 
 #: main.cc:116
-msgid "Translate MIDI-file to mudela"
+#, fuzzy
+msgid "Translate MIDI-file to lilypond"
 msgstr "ôÒÁÎÓÌÉÒÏ×ÁÔØ MIDI-ÆÁÊÌ × mudela"
 
 #: main.cc:130
@@ -1157,76 +1269,6 @@ msgstr "
 msgid "invalid track length"
 msgstr "ÎÅ×ÅÒÎÁÑ ÄÌÉÎÁ ÄÏÒÏÖËÉ"
 
-#: mudela-item.cc:161
-#, c-format
-msgid "#32 in quarter: %d"
-msgstr "#32 × ÞÅÔ×ÅÒÔÎÏÊ: %d"
-
-#: mudela-score.cc:108
-#, c-format
-msgid "Lily output to %s..."
-msgstr "Lily ×ÙÈÏÄ × %s..."
-
-#: mudela-score.cc:119
-#, c-format
-msgid "track %d:"
-msgstr "ÄÏÒÏÖËÁ %d:"
-
-#: mudela-score.cc:155
-msgid "Processing..."
-msgstr "ïÂÒÁÂÁÔÙ×ÁÀ..."
-
-#: mudela-score.cc:164
-msgid "Creating voices..."
-msgstr "óÏÚÄÁÀ ÇÏÌÏÓÁ..."
-
-#: mudela-score.cc:168
-msgid "track "
-msgstr "ÄÏÒÏÖËÁ"
-
-#: mudela-score.cc:177
-msgid "NOT Filtering tempo..."
-msgstr ""
-
-#: mudela-score.cc:186
-msgid "NOT Quantifying columns..."
-msgstr ""
-
-#: mudela-score.cc:190
-msgid "Quantifying columns..."
-msgstr ""
-
-#: mudela-score.cc:223
-msgid "Settling columns..."
-msgstr ""
-
-#: mudela-staff.cc:209
-msgid "% MIDI copyright:"
-msgstr "% MIDI copyright:"
-
-#: mudela-staff.cc:210
-msgid "% MIDI instrument:"
-msgstr "% MIDI ÉÎÓÔÒÕÍÅÎÔ:"
-
-#: mudela-stream.cc:37
-#, c-format
-msgid "lily indent level: %d"
-msgstr "ÕÒÏ×ÅÎØ ÏÔÓÔÕÐÏ× lily: %d"
-
-#. Maybe better not to translate these?
-#: mudela-stream.cc:83
-msgid "% Creator: "
-msgstr "% óÏÚÄÁÔÅÌØ: "
-
-#: mudela-stream.cc:88
-msgid "% Automatically generated"
-msgstr "% á×ÔÏÍÁÔÉÞÅÓËÉ ÓÇÅÎÅÒÉÒÏ×ÁÎÏ"
-
-#: mudela-stream.cc:97
-#, c-format
-msgid "% from input file: "
-msgstr "% ÉÚ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ: "
-
 #, fuzzy
 #~ msgid "Dependency file left in `%s'"
 #~ msgstr "úÁÐÉÓÙ×ÁÀ ÆÁÊÌ ÚÁ×ÉÓÉÍÏÓÔÅÊ: `%s'..."
@@ -1286,9 +1328,6 @@ msgstr "% 
 #~ msgid "No key name, assuming `C'"
 #~ msgstr "îÅÔ ÎÁÚ×ÁÎÉÑ ËÌÀÞÁ, ÐÏÄÒÁÚÕÍÅ×ÁÀ `C'"
 
-#~ msgid "Don't know how handle empty keys"
-#~ msgstr "îÅ ÚÎÁÀ, ÞÔÏ ÄÅÌÁÔØ Ó ÐÕÓÔÙÍÉ ËÌÀÞÁÍÉ"
-
 #~ msgid "out of tune:"
 #~ msgstr "×ÎÅ ÔÏÎÁÌØÎÏÓÔÉ:"
 
diff --git a/ports/mutopia/BeethovenLv/O62/Coriolan/GNUmakefile b/ports/mutopia/BeethovenLv/O62/Coriolan/GNUmakefile
new file mode 100644 (file)
index 0000000..6876273
--- /dev/null
@@ -0,0 +1,5 @@
+zipped = true
+mutopia-name = Coriolan
+ depth = ../../../../..
+ include $(depth)/ports/ports.make
diff --git a/ports/mutopia/BeethovenLv/O62/GNUmakefile b/ports/mutopia/BeethovenLv/O62/GNUmakefile
new file mode 100644 (file)
index 0000000..0197f03
--- /dev/null
@@ -0,0 +1,3 @@
+ depth = ../../../..
+ include $(depth)/ports/ports.make
index 9c809fb6d3b220676522ae1e0a047d74e29afa3a..e76878cf5fdf6926904efa7b32e08bcadc4e7a42 100644 (file)
@@ -21,6 +21,7 @@
 ;
 ; How should a  bar line behave at a break? 
 ;
+;; Why prepend `default-' to every scm identifier?
 (define (default-break-barline glyph dir)
    (let ((result (assoc glyph 
                        '((":|:" . (":|" . "|:"))
index 045002d357763db785d8be5876ff510c90644be1..793d287a5faa196d1dad88512d86935a90b03dae 100644 (file)
          (uniqued-alist (cdr alist) (cons (car alist) acc)))))
 
 
+;; used in denneboom.ly
+(define (cons-map f x)
+  (cons (f (car x)) (f (cdr x))))
 
-;;(define (cons-map f x)
-;;  (cons (f (car x)) (f (cdr x))))
-
-
+;; used where?
 ;;(define (reduce operator list)
 ;;      (if (null? (cdr list)) (car list)
 ;;       (operator (car list) (reduce operator (cdr list)))))
index 3019ca7bdd90f0a4e33b82e80bebba85a5858fce..f2b11acc7318889482a4bb8e65dbf958a7d705cf 100644 (file)
@@ -31,6 +31,9 @@
   (string-append (number->string line) " " file)
   )
 
+;; cpp hack to get useful error message
+(define ifdef "First run this through cpp.")
+(define ifndef "First run this through cpp.")
   
 (define default-script-alist '())
 (define font-name-alist  '())
index 4efa72737c6a28483bc0265859bab18053ecb24b..b3d127a8ce66dbc4a6a07a9ae246a98dd82edbf9 100644 (file)
@@ -378,10 +378,10 @@ Options:
       (begin
        (set! fonts (cons (cons "default" (generate-default-font)) fonts))
        (display "\n" (current-error-port))
-       (if (and (defined? 'mudelapaperlinewidth)
-               (> (string->number mudelapaperlinewidth) 0))
+       (if (and (defined? 'lilypondpaperlinewidth)
+               (> (string->number lilypondpaperlinewidth) 0))
           (set! canvas-width 
-                (inexact->exact (string->number mudelapaperlinewidth))))))
+                (inexact->exact (string->number lilypondpaperlinewidth))))))
   (set! canvas-height height)
   (set! canvas (make-array " " canvas-height canvas-width)))
 
index 0ba8cb886b376581d40183060c3c09d0c336db25..9e0f7e43c9c4622446f80ea788ac24283b239f0e 100644 (file)
@@ -114,11 +114,19 @@ def show_rules (file):
 
 ############################
                
+if 1:
+       def conv(str):
+               if re.search ('\\\\multi', str):
+                       sys.stderr.write ('\nNot smart enough to convert \\multi')
+               return str
+       
+       conversions.append (((0,1,9), conv, '\\header { key = concat + with + operator }'))
+
 if 1:                                  # need new a namespace
        def conv (str):
                if re.search ('\\\\octave', str):
                        sys.stderr.write ('\nNot smart enough to convert \\octave')
-                       raise FatalConversionError()
+               #       raise FatalConversionError()
                
                return str
 
@@ -130,7 +138,8 @@ if 1:                                       # need new a namespace
        def conv (str):
                str = re.sub ('\\\\textstyle([^;]+);',
                                         '\\\\property Lyrics . textstyle = \\1', str)
-               str = re.sub ('\\\\key([^;]+);', '\\\\accidentals \\1;', str)
+               # harmful to current .lys
+               # str = re.sub ('\\\\key([^;]+);', '\\\\accidentals \\1;', str)
                        
                return str
 
@@ -179,10 +188,7 @@ if 1:
 
 if 1:
        def conv(str):
-               str =  re.sub ('\\\\melodic', '\\\\notes',str)
-               if re.search ('\\\\header', str):
-                       sys.stderr.write ('\nNot smart enough to convert \\multi constructs')
-                       
+               str =  re.sub ('\\\\melodic([^a-zA-Z])', '\\\\notes\\1',str)
                return str
        
        conversions.append (((1,0,3), conv, '\\melodic -> \\notes'))
@@ -198,7 +204,7 @@ if 1:
 if 1:
        def conv(str):
                str =  re.sub ('ChoireStaff', 'ChoirStaff',str)
-               str =  re.sub ('\\output', 'output = ',str)
+               str =  re.sub ('\\\\output', 'output = ',str)
                        
                return str
        
@@ -208,7 +214,7 @@ if 1:
        def conv(str):
                if re.search ('[a-zA-Z]+ = *\\translator',str):
                        sys.stderr.write ('\nNot smart enough to change \\translator syntax')
-                       raise FatalConversionError()
+               #       raise FatalConversionError()
                return str
        
        conversions.append (((1,0,6), conv, 'foo = \\translator {\\type .. } ->\\translator {\\type ..; foo; }'))
@@ -263,7 +269,10 @@ if 1:
 
 if 1:
        def conv(str):
+               str =  re.sub ('\\\\type([^\n]*engraver)','\\\\TYPE\\1', str)
+               str =  re.sub ('\\\\type([^\n]*performer)','\\\\TYPE\\1', str)
                str =  re.sub ('\\\\type','\\\\context', str)
+               str =  re.sub ('\\\\TYPE','\\\\type', str)
                str =  re.sub ('textstyle','textStyle', str)
                        
                return str
@@ -275,7 +284,7 @@ if 1:
        def conv(str):
                if re.search ('\\\\repeat',str):
                        sys.stderr.write ('\nNot smart enough to convert \\repeat')
-                       raise FatalConversionError()
+               #       raise FatalConversionError()
                return str
        
        conversions.append (((1,0,18), conv,
@@ -418,6 +427,18 @@ if 1:
 
        conversions.append (((1,3,18), conv, 'staffLineLeading -> staffSpace'))
 
+
+if 1:
+       def conv(str):
+               if re.search ('\\\\repetitions',str):
+                       sys.stderr.write ('\nNot smart enough to convert \\repetitions')
+               #       raise FatalConversionError()
+               return str
+       
+       conversions.append (((1,3,23), conv,
+                '\\\\repetitions feature dropped'))
+
+
 if 1:
        def conv (str):
                str = re.sub ('textEmptyDimension *= *##t',
@@ -477,6 +498,16 @@ if 1:
        conversions.append (((1,3,49), conv,
                 'noteHeadStyle value: string -> symbol'))
 
+if 1:
+       def conv (str):
+               if re.search ('\\\\keysignature', str):
+                       sys.stderr.write ('\nNot smart enough to convert to new tremolo format')
+               return str
+
+
+       conversions.append (((1,3,58), conv,
+                'noteHeadStyle value: string -> symbol'))
+
 if 1:
        def conv (str):
                str = re.sub (r"""\\key *([a-z]+) *;""", r"""\\key \1 \major;""",str);
@@ -508,12 +539,13 @@ if 1:
 
 
                str = re.sub ('basicLocalKeyProperties' ,"Accidentals", str)
-               str = re.sub ('basicMarkProperties' ,"Accidentals", str)                                
+               str = re.sub ('basicMarkProperties' ,"Accidentals", str)
                str = re.sub ('basic([A-Za-z_]+)Properties', '\\1', str)
 
+               str = re.sub ('Repeat_engraver' ,'Volta_engraver', str)
                return str
        
-       conversions.append (((1,3,92), conv, 'basicXXXProperties -> XXX'))
+       conversions.append (((1,3,92), conv, 'basicXXXProperties -> XXX, Repeat_engraver -> Volta_engraver'))
 
 if 1:
        def conv (str):
@@ -545,11 +577,20 @@ if 1:
                str = re.sub ('\\\\property *[^ ]*verticalDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\\\stemUp\\\\slurUp\\\\tieUp', str)
                str = re.sub ('\\\\property *[^ ]*verticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', '\\\\stemDown\\\\slurDown\\\\tieDown', str)
                str = re.sub ('\\\\property *[^ ]*verticalDirection[^=]*= *#?"?(0|(\\\\center))"?', '\\\\stemBoth\\\\slurBoth\\\\tieBoth', str)
+
+               str = re.sub ('verticalDirection[^=]*= *#?"?(1|(\\\\up))"?', 'Stem \\\\override #\'direction = #0\nSlur \\\\override #\'direction = #0\n Tie \\\\override #\'direction = #1', str)
+               str = re.sub ('verticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', 'Stem \\\\override #\'direction = #0\nSlur \\\\override #\'direction = #0\n Tie \\\\override #\'direction = #-1', str)
+               str = re.sub ('verticalDirection[^=]*= *#?"?(0|(\\\\center))"?', 'Stem \\\\override #\'direction = #0\nSlur \\\\override #\'direction = #0\n Tie \\\\override #\'direction = #0', str)
                
                str = re.sub ('\\\\property *[^ .]*[.]?([a-z]+)VerticalDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\\\\\1Up', str)
                str = re.sub ('\\\\property *[^ .]*[.]?([a-z]+)VerticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', '\\\\\\1Down', str)
                str = re.sub ('\\\\property *[^ .]*[.]?([a-z]+)VerticalDirection[^=]*= *#?"?(0|(\\\\center))"?', '\\\\\\1Both', str)
 
+               # (lacks capitalisation slur -> Slur)
+               str = re.sub ('([a-z]+)VerticalDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\1 \\\\override #\'direction = #1', str)
+               str = re.sub ('([a-z]+)VerticalDirection[^=]*= *#?"?((-1)|(\\\\down))"?', '\\1 \\override #\'direction = #-1', str)
+               str = re.sub ('([a-z]+)VerticalDirection[^=]*= *#?"?(0|(\\\\center))"?', '\\1 \\\\override #\'direction = #0', str)
+
                ## dynamic..
                str = re.sub ('\\\\property *[^ .]*[.]?dynamicDirection[^=]*= *#?"?(1|(\\\\up))"?', '\\\\dynamicUp', str)
                str = re.sub ('\\\\property *[^ .]*[.]?dyn[^=]*= *#?"?((-1)|(\\\\down))"?', '\\\\dynamicDown', str)
@@ -597,7 +638,7 @@ if 1:
                
                str = re.sub ('#\'style *= #*"([^"])"', '#\'style = #\'\\1', str)
                
-               str = re.sub ('\\\\property *"?([^.]+)"? *[.] *"?horizontalNoteShift"? *= *"?#?([0-9]+)"?', '\\\\property \\1.NoteColumn \\\\override #\'horizontal-shift = #\\2', str) 
+               str = re.sub ('\\\\property *"?([^.]+)"? *[.] *"?horizontalNoteShift"? *= *"?#?([-0-9]+)"?', '\\\\property \\1.NoteColumn \\\\override #\'horizontal-shift = #\\2', str) 
 
                # ugh
                str = re.sub ('\\\\property *"?([^.]+)"? *[.] *"?flagStyle"? *= *""', '\\\\property \\1.Stem \\\\override #\'flag-style = ##f', str)
@@ -767,8 +808,8 @@ def do_conversion (infile, from_version, outfile, to_version):
                # esp. as current conversion rules are soo incomplete
                if re.search (lilypond_version_re_str, str):
                        str = re.sub (lilypond_version_re_str,'\\'+new_ver , str)
-               else:
-                       str = new_ver + '\n' + str
+               #else:
+               #       str = new_ver + '\n' + str
 
                outfile.write(str)
 
index e731503e2460ff9c065622021e77ba119cc439bb..9a4d5a05c027777c849677d004db4f347f65c459 100644 (file)
@@ -469,7 +469,7 @@ def do_files (fs, extra):
        f.close ()
 
        # todo: nonstopmode
-       system ('latex %s' % latex_file)
+       system ('latex \\\\nonstopmode \\\\input %s' % latex_file)
        return latex_file + '.dvi'
 
 def generate_postscript (dvi_name, extra):
index 41431b1329c8023a9594c9d46235a077170bbf59..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,35 +0,0 @@
-
-\def\file#1{\verb+#1+}
-
-% ugh: trick to get examples not generate par
-% these are for 16pt
-\def\lilypondpaperlinewidth{-28.452756}%
-\def\lilypondpaperindent{28.452756}%
-\def\lilypondpaperrulethickness{0.400000}%
-\def\lilypondpaperbarsize{16.000000}%
-\def\lilypondpaperinterline{4.000000}%
-\def\lilypondpapernotewidth{5.930000}%
-\def\lilypondpaperwholewidth{8.640000}%
-\def\lilypondpaperunitspace{22.000000}%
-\def\lilypondpaperbasicspace{4.000000}%
-\def\lilypondpapergeometric{0.000000}%
-\def\lilypondpaperarithmetic_basicspace{2.000000}%
-\def\lilypondpaperarithmetic_multiplier{4.800000}%
-\def\lilypondpaperinterbeam{3.140000}%
-\def\lilypondpapergourlay_energybound{100000.000000}%
-\def\lilypondpapergourlay_maxmeasures{14.000000}%
-% huh?
-% \def\exampleheight{2\lilypondpaperbarsize pt}
-\def\exampleheight{2cm}
-
-% ful of pars, needs the above
-\input lilyponddefs
-
-% generates par
-\def\interscoreline{}
-% generates par
-%\musixsixteendefs
-%\def\musixsixteendefs{}
-\def\nolilyfooter{}
-%urg: missing \begin{document}?
-%0ef\noindent{}
index d66fca3996ac4e7914cab3a439009913185fdf28..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
--- a/tex/p.tex
+++ b/tex/p.tex
@@ -1,39 +0,0 @@
-% pedal.tex
-
-\hsize = 296mm
-\vsize = 210mm
-
-% fix chord.cc::banter_str before removing these
-\def\fetdef#1#2{%
-  \def#1{\hbox{\char#2}}}
-
-\fetdef\pedalasterisk{101}
-\fetdef\pedaldash{102}
-\fetdef\pedaldot{103}
-\fetdef\pedalP{104}
-\fetdef\pedald{105}
-\fetdef\pedale{106}
-
-%\font\fetatwentysixfontt=feta26 scaled \magstep 4
-%\font\fetatwentysixfontt=feta26 scaled 18842
-\font\fetatwentysixfontt=feta26 scaled 2407
-\magnification \magstep 4
-
-\def\fetafont{\fetatwentysixfontt}
-
-\baselineskip 12mm
-
-\vbox{
-\kern 20mm
-
-\hbox{
-\fetatwentysixfontt
-\hbox { \pedalP\kern-0.06ex\pedale\kern -0.55ex\pedald\pedaldot}
-\kern 50mm
-\pedalasterisk
-}
-}
-
-\end
-
-%\endinput
diff --git a/tex/test-pedal.tex b/tex/test-pedal.tex
new file mode 100644 (file)
index 0000000..d66fca3
--- /dev/null
@@ -0,0 +1,39 @@
+% pedal.tex
+
+\hsize = 296mm
+\vsize = 210mm
+
+% fix chord.cc::banter_str before removing these
+\def\fetdef#1#2{%
+  \def#1{\hbox{\char#2}}}
+
+\fetdef\pedalasterisk{101}
+\fetdef\pedaldash{102}
+\fetdef\pedaldot{103}
+\fetdef\pedalP{104}
+\fetdef\pedald{105}
+\fetdef\pedale{106}
+
+%\font\fetatwentysixfontt=feta26 scaled \magstep 4
+%\font\fetatwentysixfontt=feta26 scaled 18842
+\font\fetatwentysixfontt=feta26 scaled 2407
+\magnification \magstep 4
+
+\def\fetafont{\fetatwentysixfontt}
+
+\baselineskip 12mm
+
+\vbox{
+\kern 20mm
+
+\hbox{
+\fetatwentysixfontt
+\hbox { \pedalP\kern-0.06ex\pedale\kern -0.55ex\pedald\pedaldot}
+\kern 50mm
+\pedalasterisk
+}
+}
+
+\end
+
+%\endinput