]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.141
authorfred <fred>
Wed, 27 Mar 2002 00:58:35 +0000 (00:58 +0000)
committerfred <fred>
Wed, 27 Mar 2002 00:58:35 +0000 (00:58 +0000)
51 files changed:
Documentation/topdocs/FAQ.texi
Documentation/user/invoking.itexi
Documentation/user/latex-example.latex [new file with mode: 0644]
Documentation/user/latex-lilypond-example.latex
NEWS
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/les-nereides.ly
input/test/ac-extra-voice.ly
input/test/auto-beam-override.ly
ly/dynamic-scripts.ly
ly/params-as.ly
make/ly.make
make/ports-rules.make [new file with mode: 0644]
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/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
mutopia/J.S.Bach/GNUmakefile
po/de.po
po/fr.po
po/it.po
po/ja.po
po/lilypond.pot
po/nl.po
po/ru.po
scm/basic-properties.scm
scm/c++.scm
scm/lily.scm
scripts/as2text.scm
scripts/ly2dvi.py
tex/test-pedal.tex [new file with mode: 0644]

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.
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
index a79e99cc6eea2059d6c47deda1a2d674f991b3a0..4cb45eae1e323ada6f63ad53f8eba653087bf284 100644 (file)
@@ -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 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 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 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 a29c02088560086780097b80a78f6491bb5a95e8..8355a3dc659c1b5daf74d396d50723a283f65f0e 100644 (file)
@@ -9,20 +9,24 @@
 #
 # Magic: find and include LilyPond's StepMake rules
 #
-# 0: follow LILYPONDPREFIX
-# 1: try source tree
-# 2: try installed tree in $HOME
-# 3: try system installed tree
-#
-make-root=$(wildcard $(LILYPONDPREFIX)/make)
+# 0: try local tree
+# 1: follow LILYPONDPREFIX
+# 2: try source tree in home
+# 3: try installed tree in $HOME
+# 4: try system installed tree
+# 5: try system installed tree
+#
+make-root=$(wildcard $(depth)/make)
+make-root?=$(wildcard $(LILYPONDPREFIX)/make)
 make-root?=$(wildcard $(HOME)/usr/src/lilypond/make)
+make-root?=$(wildcard $(HOME)/usr/share/lilypond/make)
 make-root?=$(wildcard /usr/share/lilypond/make)
-make-root?=$(wildcard /usr/share/lilypond/make)
+make-root?=$(wildcard /usr/local/share/lilypond/make)
 #make-root=<LilyPond's datadir>/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
@@ -65,7 +69,7 @@ $(outdir)/%-book.ps: $(outdir)/%.ps
 # or make `foo-book' to make out/foo-book.ps
 #
 %: $(outdir)/%.ps
-       @echo Making $@ from $<
+       @echo Generated $< for target $@.
 
 #
 # Also clean hand-compiled stuff in cwd
diff --git a/make/ports-rules.make b/make/ports-rules.make
new file mode 100644 (file)
index 0000000..5e509ee
--- /dev/null
@@ -0,0 +1,22 @@
+ifeq ($(zipped),)
+%.ly:
+       wget $(MUTOPIA_MIRROR)/$(mutopia-dir)/$@
+       $(MAKE) local-convert-ly
+else
+%.zip:
+       wget $(MUTOPIA_MIRROR)/$(mutopia-dir)/$@
+
+%.ly:  %-lys.zip
+       unzip -n $<
+       $(MAKE) local-convert-ly
+endif
+
+%/GNUmakefile:
+       mkdir -p $(@D)
+       $(if $(shell grep '[.]ly' $(@D)/index.html), \
+               echo 'mutopia-name = $(@D)' > $@, \
+               $(if $(shell grep '[.]zip' $(@D)/index.html), \
+                       echo -e 'zipped = true\nmutopia-name = $(@D)' > $@))
+       echo -e $(GNUmakefile) >> $@
+
+
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
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 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 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 52dd368a10a71285bd12cdd5f772a2753a8b1708..ac3781601d4cbdb6ae1d269d7e1fa1f658200dba 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-03-16 09:44+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"
@@ -14,129 +14,133 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: ENCODING\n"
 
-#: ly2dvi.py:74 main.cc:95 main.cc:109
+#: ly2dvi.py:86 main.cc:95 main.cc:105
 msgid "this help"
 msgstr ""
 
-#: ly2dvi.py:75
+#: ly2dvi.py:87
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:76
+#: ly2dvi.py:88
 msgid "generate PostScript output"
 msgstr ""
 
-#: ly2dvi.py:77
+#: ly2dvi.py:89
 msgid "keep all output, and name the directory ly2dvi.dir"
 msgstr ""
 
-#: ly2dvi.py:78
+#: ly2dvi.py:90
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:79 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:80 main.cc:106 main.cc:121
+#: ly2dvi.py:93 main.cc:106 main.cc:116
 msgid "show warranty and copyright"
 msgstr ""
 
-#: ly2dvi.py:81
+#: ly2dvi.py:94
 msgid "dump all final output into DIR"
 msgstr ""
 
-#: ly2dvi.py:82 main.cc:113
+#: ly2dvi.py:95 main.cc:109
 msgid "write Makefile dependencies for every input file"
 msgstr ""
 
-#: data-file.cc:118 input.cc:85 ly2dvi.py:108 midi-parser.cc:100 warn.cc:23
+#: 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:113 ly2dvi.py:247 warn.cc:9 warn.cc:17
+#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17
 msgid "error: "
 msgstr ""
 
-#: ly2dvi.py:115
+#: ly2dvi.py:130
 msgid "Exiting ... "
 msgstr ""
 
-#: ly2dvi.py:134
+#: ly2dvi.py:149
 #, c-format
-msgid "Reading `%s'"
+msgid "Reading %s..."
 msgstr ""
 
-#: ly2dvi.py:138 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 ""
 
-#: ly2dvi.py:201
+#: ly2dvi.py:216
 #, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr ""
 
-#: ly2dvi.py:203
+#: ly2dvi.py:218
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
-#: ly2dvi.py:205 main.cc:119 main.cc:151
+#: ly2dvi.py:220 main.cc:119 main.cc:146
 msgid "Options:"
 msgstr ""
 
-#: ly2dvi.py:209
+#: ly2dvi.py:224
 msgid "all output is written in the CURRENT directory"
 msgstr ""
 
-#: ly2dvi.py:211 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:243
+#: ly2dvi.py:260
 #, c-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: ly2dvi.py:247
+#: ly2dvi.py:263
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:249
+#: ly2dvi.py:265
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:278
-#, c-format
-msgid "invalid value: %s"
-msgstr ""
-
-#: ly2dvi.py:284
+#: ly2dvi.py:301
 #, c-format
 msgid "no such setting: %s"
 msgstr ""
 
-#: ly2dvi.py:292
+#: ly2dvi.py:309
 #, c-format
 msgid "Analyzing `%s'"
 msgstr ""
 
-#: ly2dvi.py:336
+#: ly2dvi.py:353
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr ""
 
-#: ly2dvi.py:568 scores.cc:44
+#: ly2dvi.py:395
+#, c-format
+msgid "invalid value: %s"
+msgstr ""
+
+#: ly2dvi.py:602 scores.cc:44
 #, c-format
 msgid "dependencies output to %s..."
 msgstr ""
 
-#: ly2dvi.py:569
+#: ly2dvi.py:603
 #, c-format
-msgid "%s file left in `%s'"
+msgid "%s output to %s..."
 msgstr ""
 
 #: data-file.cc:54
@@ -241,12 +245,12 @@ msgstr ""
 msgid "can't find default font: `%s'"
 msgstr ""
 
-#: 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 ""
 
-#: all-font-metrics.cc:173 parser.yy:1663
+#: all-font-metrics.cc:173 parser.yy:1681
 msgid "Giving up"
 msgstr ""
 
@@ -357,7 +361,7 @@ msgstr ""
 msgid "already have a decrescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:315
+#: dynamic-engraver.cc:318
 msgid "unterminated (de)crescendo"
 msgstr ""
 
@@ -373,7 +377,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 ""
 
@@ -405,7 +409,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'"
@@ -442,94 +446,90 @@ 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
 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 ""
 
-#: 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 ""
 
-#: main.cc:141
+#: main.cc:136
 msgid "Typeset music and or play MIDI from FILE"
 msgstr ""
 
-#: 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
 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"
@@ -537,16 +537,16 @@ 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 ""
 
-#: main.cc:199
+#: main.cc:194
 msgid "GNU LilyPond -- The music typesetter"
 msgstr ""
 
-#: 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,33 +581,37 @@ msgstr ""
 msgid "Transposition by %s makes accidental larger than two"
 msgstr ""
 
-#: music.cc:226
+#: music.cc:224
 msgid "ly_get_mus_property (): Not a Music"
 msgstr ""
 
-#: music.cc:240
+#: music.cc:238
 msgid "ly_set_mus_property (): Not a symbol"
 msgstr ""
 
-#: music.cc:252
+#: music.cc:250
 msgid "ly_set_mus_property ():  not of type Music"
 msgstr ""
 
-#: music.cc:266
+#: 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 ""
 
-#: 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 ""
@@ -630,11 +634,11 @@ msgstr ""
 msgid "paper output to %s..."
 msgstr ""
 
-#: 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
 #, c-format
 msgid "writing header field %s to %s..."
 msgstr ""
@@ -688,12 +692,12 @@ msgstr ""
 msgid "Creator: "
 msgstr ""
 
-#: 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 ""
@@ -838,11 +842,11 @@ msgstr ""
 
 #. How to shut up this warning, when no notes appeared because
 #. they were suicided by Thread_devnull_engraver?
-#: tie-engraver.cc:213 tie-performer.cc:173
+#: tie-engraver.cc:215 tie-performer.cc:173
 msgid "No ties were created!"
 msgstr ""
 
-#: tie-engraver.cc:232
+#: tie-engraver.cc:234
 msgid "lonely tie"
 msgstr ""
 
@@ -860,21 +864,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 ""
 
-#: 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 ""
@@ -889,19 +893,19 @@ msgstr ""
 msgid "can't find or create: `%s'"
 msgstr ""
 
-#: 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 ""
 
@@ -922,60 +926,60 @@ msgstr ""
 msgid "Oldest supported input version: %s"
 msgstr ""
 
-#: parser.yy:472
+#: parser.yy:473
 msgid "Wrong type for property value"
 msgstr ""
 
-#: parser.yy:667
+#: parser.yy:672
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:731
+#: parser.yy:736
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:736
+#: parser.yy:741
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1212
+#: parser.yy:1236
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1222
+#: 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
 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 ""
 
-#: 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 ""
 
@@ -1029,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 ""
@@ -1073,6 +1147,10 @@ msgstr ""
 msgid "set smallest duration"
 msgstr ""
 
+#: main.cc:103
+msgid "don't timestamp the output"
+msgstr ""
+
 #: main.cc:105
 msgid "be verbose"
 msgstr ""
@@ -1087,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
@@ -1163,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 dc56d9317814cef840f1ebc85ae4d69aed3cdcf8..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-16 09:44+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"
@@ -23,132 +23,136 @@ msgstr ""
 "Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po --add-comments --keyword=_\n"
 "Files: bow.cc int.cc\n"
 
-#: ly2dvi.py:74 main.cc:95 main.cc:109
+#: ly2dvi.py:86 main.cc:95 main.cc:105
 msgid "this help"
 msgstr "deze hulp"
 
-#: ly2dvi.py:75
+#: ly2dvi.py:87
 msgid "change global setting KEY to VAL"
 msgstr "verander globale instelling SLEUTEL in WAARDE"
 
-#: ly2dvi.py:76
+#: ly2dvi.py:88
 msgid "generate PostScript output"
 msgstr "genereer PostScipt uitvoer"
 
-#: ly2dvi.py:77
+#: ly2dvi.py:89
 msgid "keep all output, and name the directory ly2dvi.dir"
 msgstr "bewaar alle uitvoer, en noem de directory ly2dvi.dir"
 
-#: ly2dvi.py:78
+#: ly2dvi.py:90
 msgid "don't run LilyPond"
 msgstr "draai LilyPond niet"
 
-#: ly2dvi.py:79 main.cc:104 main.cc:119
+#: ly2dvi.py:91 main.cc:115
+msgid "verbose"
+msgstr "breedsprakig"
+
+#: ly2dvi.py:92 main.cc:104 main.cc:114
 msgid "print version number"
 msgstr "druk versienummer af"
 
-#: ly2dvi.py:80 main.cc:106 main.cc:121
+#: ly2dvi.py:93 main.cc:106 main.cc:116
 msgid "show warranty and copyright"
 msgstr "toon garantie en auteursrechten"
 
-#: ly2dvi.py:81
+#: ly2dvi.py:94
 msgid "dump all final output into DIR"
 msgstr "dump alle uiteindelijke uivoer in DIR"
 
-#: ly2dvi.py:82 main.cc:113
+#: ly2dvi.py:95 main.cc:109
 msgid "write Makefile dependencies for every input file"
 msgstr "schrijf Makefile afhankelijkheden voor elk invoerbestand"
 
-#: data-file.cc:118 input.cc:85 ly2dvi.py:108 midi-parser.cc:100 warn.cc:23
+#: data-file.cc:118 input.cc:85 ly2dvi.py:123 midi-parser.cc:100 warn.cc:23
 msgid "warning: "
 msgstr "waarschuwing: "
 
-#: input.cc:90 ly2dvi.py:113 ly2dvi.py:247 warn.cc:9 warn.cc:17
+#: input.cc:90 ly2dvi.py:128 ly2dvi.py:263 warn.cc:9 warn.cc:17
 msgid "error: "
 msgstr "fout: "
 
-#: ly2dvi.py:115
+#: ly2dvi.py:130
 msgid "Exiting ... "
 msgstr "Beëidigen ..."
 
-#: ly2dvi.py:134
+#: ly2dvi.py:149
 #, c-format
-msgid "Reading `%s'"
-msgstr "Inlezen `%s'"
+msgid "Reading %s..."
+msgstr "Inlezen %s..."
 
-#: ly2dvi.py:138 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 "kan bestand niet openen: `%s'"
 
-#: ly2dvi.py:201
+#: ly2dvi.py:216
 #, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "Gebruik: %s [OPTIE]... BESTAND"
 
-#: ly2dvi.py:203
+#: ly2dvi.py:218
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr "Genereer .dvi met LaTeX voor LilyPond"
 
-#: ly2dvi.py:205 main.cc:119 main.cc:151
+#: ly2dvi.py:220 main.cc:119 main.cc:146
 msgid "Options:"
 msgstr "Opties:"
 
-#: ly2dvi.py:209
+#: ly2dvi.py:224
 msgid "all output is written in the CURRENT directory"
 msgstr "alle uitvoer wordt naar HUIDIGE directory geschreven"
 
-#: ly2dvi.py:211 main.cc:123 main.cc:174
+#: ly2dvi.py:226 main.cc:123 main.cc:169
 #, c-format
 msgid "Report bugs to %s"
 msgstr ""
 "Meld luizen in het programma aan %s;\n"
 "meld onjuistheden in de vertaling aan <janneke@gnu.org> of <hanwen@cs.uu.nl>"
 
-#: ly2dvi.py:243
+#: ly2dvi.py:260
 #, c-format
 msgid "Invoking `%s'"
 msgstr "Uitvoeren `%s'"
 
-#: ly2dvi.py:247
+#: ly2dvi.py:263
 #, c-format
 msgid "command exited with value %d"
 msgstr "opdracht eindigde met waarde %d"
 
-#: ly2dvi.py:249
+#: ly2dvi.py:265
 msgid "(ignored)"
 msgstr "(genegeerd)"
 
-#: ly2dvi.py:278
-#, c-format
-msgid "invalid value: %s"
-msgstr "ongeldige waarde: %s"
-
-#: ly2dvi.py:284
+#: ly2dvi.py:301
 #, c-format
 msgid "no such setting: %s"
 msgstr "geen dergelijke instelling: %s"
 
-#: ly2dvi.py:292
+#: ly2dvi.py:309
 #, c-format
 msgid "Analyzing `%s'"
 msgstr "Analyseren `%s'"
 
-#: ly2dvi.py:336
+#: ly2dvi.py:353
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr "geen lilypond uitvoer gevonden voor %s"
 
-#: ly2dvi.py:568 scores.cc:44
+#: ly2dvi.py:395
+#, c-format
+msgid "invalid value: %s"
+msgstr "ongeldige waarde: %s"
+
+#: ly2dvi.py:602 scores.cc:44
 #, c-format
 msgid "dependencies output to %s..."
 msgstr "afhankelijkheden uitvoer naar %s..."
 
-#: ly2dvi.py:569
+#: ly2dvi.py:603
 #, c-format
-msgid "%s file left in `%s'"
-msgstr "%s bestand achtergelaten in `%s'"
+msgid "%s output to %s..."
+msgstr "%s uitvoer naar %s..."
 
 #: data-file.cc:54
 msgid "EOF in a string"
@@ -254,12 +258,12 @@ msgstr "Laad verstek font"
 msgid "can't find default font: `%s'"
 msgstr "kan verstekfont niet vinden: `%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 "(zoekpad: `%s')"
 
-#: all-font-metrics.cc:173 parser.yy:1663
+#: all-font-metrics.cc:173 parser.yy:1681
 msgid "Giving up"
 msgstr "Geef op"
 
@@ -370,7 +374,7 @@ msgstr "heb al een crescendo"
 msgid "already have a decrescendo"
 msgstr "heb al een decrescendo"
 
-#: dynamic-engraver.cc:315
+#: dynamic-engraver.cc:318
 msgid "unterminated (de)crescendo"
 msgstr "onbeëindigd (de)crescendo"
 
@@ -387,7 +391,7 @@ msgstr ""
 msgid "no one to print a repeat brace"
 msgstr "niemand om een herhalings haak af te drukken"
 
-#: font-interface.cc:220
+#: font-interface.cc:237
 msgid "couldn't find any font satisfying "
 msgstr "kon geen enkel font vinden dat voldoet aan "
 
@@ -420,7 +424,7 @@ msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
 msgstr ""
 "Niets om streepje aan linkerkant aan vast te maken.  Negeer streepje verzoek."
 
-#: 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'"
@@ -457,83 +461,79 @@ msgstr "liedteksten gevonden zonder bijbehorend nootbolletje"
 msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr "Huh?  Melismatische noot blijkt bijbehorende liedtekst te hebben."
 
-#: main.cc:108
+#: main.cc:104
 msgid "EXT"
 msgstr "EXT"
 
-#: main.cc:108
+#: main.cc:104
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr "gebruik uitvoer formaat EXT (scm, ps, tex of as)"
 
-#: main.cc:110
+#: main.cc:106
 msgid "FIELD"
 msgstr "VELD"
 
-#: main.cc:110
+#: main.cc:106
 msgid "write header field to BASENAME.FIELD"
 msgstr "schrijf kop veld naar BASISNAAM.VELD"
 
-#: 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 "voeg DIR toe aan zoekpad"
 
-#: main.cc:98 main.cc:112
+#: main.cc:98 main.cc:108
 msgid "FILE"
 msgstr "BESTAND"
 
-#: main.cc:112
+#: main.cc:108
 msgid "use FILE as init file"
 msgstr "gebruik BESTAND als initialisatiebestand"
 
-#: main.cc:114
+#: main.cc:110
 msgid "prepend DIR to dependencies"
 msgstr "voeg DIR voor aan afhankelijkheden"
 
-#: main.cc:115
+#: main.cc:111
 msgid "produce MIDI output only"
 msgstr "produceer alleen MIDI uitvoer"
 
-#: main.cc:116
+#: main.cc:112
 msgid "NAME"
 msgstr "NAAM"
 
-#: main.cc:116
+#: main.cc:112
 msgid "write output to NAME"
 msgstr "schrijf uitvoer naar NAAM"
 
-#: main.cc:117
+#: main.cc:113
 msgid "inhibit file output naming and exporting"
 msgstr "verbied naamgeving van uitvoer bestand en exportering"
 
-#: main.cc:103 main.cc:118
-msgid "don't timestamp the output"
-msgstr "geen tijdsstempel in de uitvoer"
-
-#: main.cc:120
-msgid "verbose"
-msgstr "breedsprakig"
+#: main.cc:117
+msgid "EXPR"
+msgstr "EXPR"
 
-#: main.cc:122
-msgid "write midi ouput in formatted ascii"
-msgstr "schrijf midi uitvoer in geformatteerd ascii"
+#: main.cc:117
+msgid "evalute EXPR as Scheme after .scm init is read"
+msgstr "evalueer EXPR als Scheme nadat .scm init is gelezen"
 
 #.
 #. No version number or newline here. It confuses help2man
 #.
-#: main.cc:139
+#: main.cc:134
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Gebruik: %s [OPTIE]... [BESTAND]..."
 
-#: main.cc:141
+#: main.cc:136
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "Zet muziek en of speel MIDI van BESTAND"
 
-#: 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"
@@ -543,11 +543,11 @@ msgstr ""
 "uitgaande van een hoog niveau beschrijving bestand.  LilyPond \n"
 "maakt deel uit van het GNU Project.\n"
 
-#: main.cc:155
+#: main.cc:150
 msgid "This binary was compiled with the following options:"
 msgstr "Dit programma is gecompileerd met de volgende instellingen:"
 
-#: 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"
@@ -559,16 +559,16 @@ msgstr ""
 "onder bepaalde voorwaarden.  Roep aan als `%s --warranty' voor meer\n"
 "informatie.\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 "
 
-#: main.cc:199
+#: main.cc:194
 msgid "GNU LilyPond -- The music typesetter"
 msgstr "GNU LilyPond -- De Muziekzetter"
 
-#: 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"
@@ -616,33 +616,37 @@ msgstr "rare toonhoogte"
 msgid "Transposition by %s makes accidental larger than two"
 msgstr "Transponering van %s geeft tripel kruizen/mollen"
 
-#: music.cc:226
+#: music.cc:224
 msgid "ly_get_mus_property (): Not a Music"
 msgstr "ly_get_mus_property (): Geen Muziek"
 
-#: music.cc:240
+#: music.cc:238
 msgid "ly_set_mus_property (): Not a symbol"
 msgstr "ly_set_mus_property (): Geen symbool"
 
-#: music.cc:252
+#: music.cc:250
 msgid "ly_set_mus_property ():  not of type Music"
 msgstr "ly_set_mus_property ():  niet van type Muziek"
 
-#: music.cc:266
+#: music.cc:264
 msgid "ly_make_music (): Not a string"
 msgstr "ly_make_music (): Geen string"
 
+#: music.cc:284
+msgid "ly_music_name (): Not a music expression"
+msgstr "ly_make_music (): Geen muziek expressie"
+
 #: music-output-def.cc:115
 #, c-format
 msgid "can't find `%s' context"
 msgstr "kan `%s' context niet vinden"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:138
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "Identifier naam is een sleutelwoord: `%s'"
 
-#: my-lily-lexer.cc:157
+#: my-lily-lexer.cc:158
 #, c-format
 msgid "error at EOF: %s"
 msgstr "fout bij EOF: %s"
@@ -665,11 +669,11 @@ msgstr "Schroot verzoek: `%s'"
 msgid "paper output to %s..."
 msgstr "papier uitvoer naar %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 ", bij "
 
-#: paper-outputter.cc:245
+#: paper-outputter.cc:232
 #, c-format
 msgid "writing header field %s to %s..."
 msgstr "Schijven van kop veld %s naar bestand %s..."
@@ -723,12 +727,12 @@ msgstr "Spoor ... "
 msgid "Creator: "
 msgstr "Schepper: "
 
-#: performance.cc:116
+#: performance.cc:109
 #, c-format
 msgid "from musical definition: %s"
 msgstr "van muzikale definitie: %s"
 
-#: performance.cc:171
+#: performance.cc:164
 #, c-format
 msgid "MIDI output to %s..."
 msgstr "MIDI uitvoer naar %s..."
@@ -876,11 +880,11 @@ msgstr ""
 
 #. How to shut up this warning, when no notes appeared because
 #. they were suicided by Thread_devnull_engraver?
-#: tie-engraver.cc:213 tie-performer.cc:173
+#: tie-engraver.cc:215 tie-performer.cc:173
 msgid "No ties were created!"
 msgstr "Geen overbindingen geschapen!"
 
-#: tie-engraver.cc:232
+#: tie-engraver.cc:234
 msgid "lonely tie"
 msgstr "eenzame overbinding"
 
@@ -898,21 +902,21 @@ msgstr "maatstreep controle gefaald op: %s"
 msgid "unknown translator: `%s'"
 msgstr "onbekende translator: `%s'"
 
-#: translator-def.cc:96
+#: translator-def.cc:99
 msgid "Program has no such type"
 msgstr "Programma heeft geen dergelijk type"
 
-#: translator-def.cc:102
+#: translator-def.cc:105
 #, c-format
 msgid "Already contains: `%s'"
 msgstr "Bevat reeds: `%s'"
 
-#: translator-def.cc:103
+#: translator-def.cc:106
 #, c-format
 msgid "Not adding translator: `%s'"
 msgstr "Voeg translator niet toe: `%s'"
 
-#: translator-def.cc:215
+#: translator-def.cc:224
 #, c-format
 msgid "can't find: `%s'"
 msgstr "kan niet vinden: `%s'"
@@ -927,20 +931,20 @@ msgstr "kan niet vinden of scheppen `%s' genaamd `%s'"
 msgid "can't find or create: `%s'"
 msgstr "kan niet vinden of scheppen: `%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 ""
 "Kan geen type-controle vinden voor property `%s'.  Misschien een tikfout?"
 
-#: translator-group.cc:417
+#: translator-group.cc:428
 #, c-format
 msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
 msgstr "Type contole gefaald voor `%s'; waarde `%s' moet type hebben: `%s'"
 
 #. programming_error?
-#: translator-group.cc:436
+#: translator-group.cc:447
 msgid "ly-get-trans-property: expecting a Translator_group argument"
 msgstr "ly-get-trans-property: verwacht een Translator_group argument"
 
@@ -961,61 +965,61 @@ msgstr "Heb ook al een gestopte spanner.   Geef op."
 msgid "Oldest supported input version: %s"
 msgstr "Oudst ondersteunde invoerversie: %s"
 
-#: parser.yy:472
+#: parser.yy:473
 msgid "Wrong type for property value"
 msgstr "Verkeerd type voor property waarde"
 
-#: parser.yy:667
+#: parser.yy:672
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 "Meer alternatieven dan herhalingen.  Schroot overvloedige alternatieven."
 
-#: parser.yy:731
+#: parser.yy:736
 msgid "Second argument must be a symbol"
 msgstr "Tweede argument moet een symbool zijn"
 
-#: parser.yy:736
+#: parser.yy:741
 msgid "First argument must be a procedure taking 1 argument"
 msgstr "Eerste argument moet een procedure zijn met 1 argument"
 
-#: parser.yy:1212
+#: parser.yy:1236
 msgid "Expecting string as script definition"
 msgstr "Verwacht string voor script definitie"
 
-#: parser.yy:1222
+#: parser.yy:1246
 msgid "Can't specify direction for this request"
 msgstr "Kan richting voor dit verzoek niet specificeren"
 
-#: parser.yy:1353
+#: parser.yy:1371
 msgid "Expecting musical-pitch value"
 msgstr "Verwacht musical-pitch waarde"
 
-#: parser.yy:1364
+#: parser.yy:1382
 msgid "Must have duration object"
 msgstr "Moet duur object hebben"
 
-#: 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 "Moet in Lyric modus zijn voor liedteksten"
 
-#: parser.yy:1546 parser.yy:1575
+#: parser.yy:1564 parser.yy:1593
 #, c-format
 msgid "not a duration: %d"
 msgstr "geen duur: %d"
 
-#: parser.yy:1584
+#: parser.yy:1602
 msgid "Have to be in Note mode for notes"
 msgstr "Moet in Note modus zijn voor noten"
 
-#: parser.yy:1680
+#: parser.yy:1698
 msgid "Have to be in Chord mode for chords"
 msgstr "Moet in Chord modus zijn voor accoorden"
 
-#: parser.yy:1842 parser.yy:1860
+#: parser.yy:1860 parser.yy:1878
 msgid "need integer number arg"
 msgstr "heb integer getal arg nogig"
 
-#: parser.yy:1846
+#: parser.yy:1864
 msgid "Must be positive integer"
 msgstr "Moet positieve integer zijn"
 
@@ -1069,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"
@@ -1113,6 +1187,10 @@ msgstr "DUUR"
 msgid "set smallest duration"
 msgstr "zet kortste duur"
 
+#: main.cc:103
+msgid "don't timestamp the output"
+msgstr "geen tijdsstempel in de uitvoer"
+
 #: main.cc:105
 msgid "be verbose"
 msgstr "wees breedsprakig"
@@ -1127,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
@@ -1203,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 "×ÎÅ ÔÏÎÁÌØÎÏÓÔÉ:"
 
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 461258cb973ee569fcf99c31e7ff3893164a65f9..9a4d5a05c027777c849677d004db4f347f65c459 100644 (file)
@@ -7,7 +7,16 @@
 '''
 TODO:
 
-  * --dependencies
+  * check --dependencies
+
+  * move versatile taglines, 
+  
+     \header {
+        beginfooter=\mutopiaPD
+        endfooter=\tagline  -> 'lily was here <version>'
+     }
+
+  * head/header tagline/endfooter
 
   * dvi from lilypond .tex output?  This is hairy, because we create dvi
     from lilypond .tex *and* header output.
@@ -43,7 +52,7 @@ extra_init = {
        'latexheaders' : [],
        'latexpackages' :  ['geometry'],
        'papersize' : [],
-       'pagenumber' : [],
+       'pagenumber' : [1],
        'textheight' : [], 
        'linewidth' : [],
        'orientation' : []
@@ -70,12 +79,16 @@ if program_version == '@' + 'TOPLEVEL_VERSION' + '@':
 # generate ps ?
 postscript_p = 0
 
+# be verbose?
+verbose_p = 0
+
 option_definitions = [
        ('', 'h', 'help', _ ("this help")),
        ('KEY=VAL', 's', 'set', _ ("change global setting KEY to VAL")),
        ('', 'P', 'postscript', _ ("generate PostScript output")),
        ('', 'k', 'keep', _ ("keep all output, and name the directory ly2dvi.dir")),
        ('', '', 'no-lily', _ ("don't run LilyPond")),
+       ('', 'V', 'verbose', _ ("verbose")),
        ('', 'v', 'version', _ ("print version number")),
        ('', 'w', 'warranty', _ ("show warranty and copyright")),
        ('DIR', '', 'outdir', _ ("dump all final output into DIR")),
@@ -99,10 +112,12 @@ NO WARRANTY.'''))
 
 
 
+def star_progress (s):
+       '''Progress messages that stand out between lilypond stuff'''
+       progress ('*** ' + s)
+
 def progress (s):
-       '''Make the progress messages stand out between lilypond stuff'''
-       # Why should they have to stand out?  Blend in would be nice too.
-       sys.stderr.write ('*** ' + s+ '\n')
+       sys.stderr.write (s + '\n')
 
 def warning (s):
        sys.stderr.write (_ ("warning: ") + s)
@@ -131,7 +146,7 @@ def find_file (name):
                except IOError:
                        pass
        if f:
-               sys.stderr.write (_ ("Reading `%s'") % nm)
+               sys.stderr.write (_ ("Reading %s...") % nm)
                sys.stderr.write ('\n');
                return (f.read (), nm)
        else:
@@ -236,12 +251,13 @@ def setup_temp ():
        os.environ['TFMFONTS'] =  original_dir + fp
 
        os.chdir (temp_dir)
-       progress (_ ('Temp directory is `%s\'\n') % temp_dir) 
+       if verbose_p:
+               progress (_ ('Temp directory is `%s\'\n') % temp_dir) 
 
        
 def system (cmd, ignore_error = 0):
-       sys.stderr.write (_ ("Invoking `%s\'") % cmd)
-       sys.stderr.write ('\n')
+       if verbose_p:
+               progress (_ ("Invoking `%s\'") % cmd)
        st = os.system (cmd)
        if st:
                msg =  ( _ ("error: ") + _ ("command exited with value %d") % st)
@@ -254,7 +270,8 @@ def system (cmd, ignore_error = 0):
 
 def cleanup_temp ():
        if not keep_temp_dir:
-               progress (_ ('Cleaning up `%s\'') % temp_dir)
+               if verbose_p:
+                       progress (_ ('Cleaning up `%s\'') % temp_dir)
                system ('rm -rf %s' % temp_dir)
        
 
@@ -403,26 +420,35 @@ def global_latex_definition (tfiles, extra):
                linewidth = 597
        s = s + '\geometry{width=%spt%s,headheight=2mm,headsep=0pt,footskip=2mm,%s}\n' % (linewidth, textheight, orientation)
 
-       s= s + r'''
-\usepackage[latin1]{inputenc} 
+       s = s + r'''
+\usepackage[latin1]{inputenc}
 \input{titledefs}
 \makeatletter
-\renewcommand{\@oddfoot}{\parbox{\textwidth}{\mbox{}\thefooter}}%%
+\renewcommand{\@oddfoot}{\parbox{\textwidth}{\mbox{}\thefooter}}%
 '''
-       if extra['pagenumber'] and  extra['pagenumber'][-1]:
+       
+       if extra['pagenumber'] and extra['pagenumber'][-1] and extra['pagenumber'][-1] != 'no':
                s = s + r'''
-               \renewcommand{\@oddhead}{\parbox{\textwidth}%%
-               {\mbox{}\small\theheader\hfill\textbf{\thepage}}}%%'''
+\renewcommand{\@oddhead}{\parbox{\textwidth}%
+    {\mbox{}\small\theheader\hfill\textbf{\thepage}}}
+'''
        else:
-               s = s + '\\pagestyle{empty}'
-               
-       s = s + '\\begin{document}'
+               s = s + '\\pagestyle{empty}\n'
+
+       s = s + '\\makeatother\n'
+       s = s + '\\begin{document}\n'
+
 
        first = 1
        for t in tfiles:
                s = s + one_latex_definition (t, first)
                first = 0
-               
+
+       s = s + r'''
+\makeatletter
+\renewcommand{\@oddfoot}{\parbox{\textwidth}{\mbox{}\lilypondtagline}}%
+\makeatother
+'''
        s = s + '\\end{document}'
 
        return s
@@ -443,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):
@@ -510,6 +536,8 @@ for opt in options:
                set_setting (extra_init, ss[0], ss[1])
        elif o == '--dependencies' or o == '-d':
                track_dependencies_p = 1
+       elif o == '--verbose' or o == '-V':
+               verbose_p = 1
        elif o == '--version' or o == '-v':
                identify ()
                sys.exit (0)
@@ -559,7 +587,8 @@ if files:
        if outdir != '.':
                system ('mkdir -p %s' % outdir)
        system ('cp \"%s\" \"%s\"' % (srcname, dest ))
-       system ('cp *.midi %s' % outdir, ignore_error = 1)
+       if re.match ('[.]midi', string.join (os.listdir ('.'))):
+               system ('cp *.midi %s' % outdir, ignore_error = 1)
 
        depfile = os.path.join (outdir, base + '.dep')
 
@@ -571,7 +600,7 @@ if files:
 
        # most insteresting info last
        progress (_ ("dependencies output to %s...") % depfile)
-       progress (_ ("%s file left in `%s'") % (type, dest))
+       progress (_ ("%s output to %s...") % (type, dest))
 
 
 
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