]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.87 release/1.3.87
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 18 Sep 2000 13:03:45 +0000 (15:03 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 18 Sep 2000 13:03:45 +0000 (15:03 +0200)
================

* Made fixes to part-combine examples and Coriolan.

* Bugfix: don't dump core on unterminated (de)crescendo.

* Rolled next (M) also into get_music (M), similar to process (M), so that
  sequential-music-iterator::get_music (M) returns something useful.

* Bugfix: part-combiner still expected Music_sequence, where get_music ()
  now returns plain list of events.

1.3.86.h

75 files changed:
CHANGES
VERSION
input/bugs/broken-cresc.ly [deleted file]
input/bugs/dynamic-switch.ly [new file with mode: 0644]
input/bugs/f.ly
input/bugs/voice-switch.ly [deleted file]
input/test/cue-notes.ly [new file with mode: 0644]
input/test/part-combine-score.ly
input/test/part-combine-staff.ly
lily/a2-devnull-engraver.cc [deleted file]
lily/auto-change-iterator.cc
lily/change-iterator.cc
lily/chord-tremolo-iterator.cc
lily/dynamic-engraver.cc
lily/dynamic-performer.cc
lily/folded-repeat-iterator.cc
lily/global-translator.cc
lily/grace-iterator.cc
lily/include/auto-change-iterator.hh
lily/include/change-iterator.hh
lily/include/chord-tremolo-iterator.hh
lily/include/command-request.hh
lily/include/folded-repeat-iterator.hh
lily/include/grace-iterator.hh
lily/include/lyric-combine-music-iterator.hh
lily/include/moment.hh
lily/include/music-iterator.hh
lily/include/music-wrapper-iterator.hh
lily/include/part-combine-music-iterator.hh
lily/include/property-iterator.hh
lily/include/request-chord-iterator.hh
lily/include/request-iterator.hh [deleted file]
lily/include/sequential-music-iterator.hh
lily/include/simple-music-iterator.hh
lily/include/simultaneous-music-iterator.hh
lily/include/time-scaled-music-iterator.hh
lily/include/unfolded-repeat-iterator.hh
lily/lyric-combine-music-iterator.cc
lily/music-iterator.cc
lily/music-wrapper-iterator.cc
lily/part-combine-music-iterator.cc
lily/property-iterator.cc
lily/request-chord-iterator.cc
lily/request-iterator.cc [deleted file]
lily/sequential-music-iterator.cc
lily/simple-music-iterator.cc
lily/simultaneous-music-iterator.cc
lily/slur-engraver.cc
lily/span-dynamic-performer.cc
lily/spanner.cc
lily/text-engraver.cc
lily/time-scaled-music-iterator.cc
lily/unfolded-repeat-iterator.cc
lily/voice-devnull-engraver.cc
ly/engraver.ly
make/out/lilypond.lsm
make/out/lilypond.spec
mutopia/Coriolan/bassi-part.ly
mutopia/Coriolan/clarinetti.ly
mutopia/Coriolan/contrabasso.ly
mutopia/Coriolan/coriolan-paper.ly
mutopia/Coriolan/coriolan-part-combine-paper.ly
mutopia/Coriolan/coriolan-part-paper.ly
mutopia/Coriolan/coriolan.ly
mutopia/Coriolan/corni.ly
mutopia/Coriolan/violi-part.ly
mutopia/Coriolan/violoncello.ly
po/de.po
po/fr.po
po/it.po
po/ja.po
po/lilypond.pot
po/nl.po
po/ru.po
scripts/etf2ly.py

diff --git a/CHANGES b/CHANGES
index 661c3999a15f35c0b560a6940906afa002bf3133..fe8475f59d96c4a43d5a89774ceff0bbe0b1d0cc 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,35 +1,26 @@
-1.3.86.jcn3
-===========
-
-* Made several fixes, simple music starts to work.
-
 1.3.86.jcn2
-===========
+================
 
-* Replaced try_music and next functionality of do_process_and_next by
-  get_music and next.  Process functionality of do_process_and_next
-  is handled by do_process.
+* Made fixes to part-combine examples and Coriolan.
 
-1.3.86.jcn1
-===========
+* Bugfix: don't dump core on unterminated (de)crescendo.
 
-* Fixed chord iteration.
+* Rolled next (M) also into get_music (M), similar to process (M), so that
+  sequential-music-iterator::get_music (M) returns something useful.
 
-1.3.85.jcn5
-===========
-
-* Modified part-combiner to use new get_music ()/next () music iterator
-  functionality.
+* Bugfix: part-combiner still expected Music_sequence, where get_music ()
+  now returns plain list of events.
 
-1.3.85.jcn4
+1.3.86.hwn3
 ===========
 
-* Added clone () to music iterators, so that we can do next () on a copy.
+* Fixed problem with disappearing crescendi across line break.
 
-1.3.85.jcn3
-===========
+* Bugfix: dynamic texts should not be set by text-engraver. 
+
+* Rewrote and cleaned up music-iterator.
 
-* Added get_music () and next () to music iterators.
+* etf2ly robustness fixes.
 
 1.3.85.hwn2
 ===========
diff --git a/VERSION b/VERSION
index bc9bf2740ddff3468fd1c5f995299fe195cecbf8..1da5d29c9928feca18ed57f07c7b693cdeedc34d 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=86
-MY_PATCH_LEVEL=jcn3
+PATCH_LEVEL=87
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/input/bugs/broken-cresc.ly b/input/bugs/broken-cresc.ly
deleted file mode 100644 (file)
index 3580a23..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-\score {
-       \notes \context Thread {
-       c1 \< c1 \break c1 c1 \! c1
-        }
-}
diff --git a/input/bugs/dynamic-switch.ly b/input/bugs/dynamic-switch.ly
new file mode 100644 (file)
index 0000000..3fc9f7e
--- /dev/null
@@ -0,0 +1,23 @@
+\score{
+       \context Staff <
+               \context Voice=one\skip 1;
+               \context Voice=two\skip 1;
+               \context Voice=one \partcombine Voice
+                       \context Thread=one \notes\relative c'' {
+                               c2 \clef bass; c2
+                               c2 c2
+                       }
+                       \context Thread=two \notes\relative c'' {
+                               b2 \< a4 () \! a
+                               a2 \> a4 () \! a
+                       }
+       >
+       \paper{
+               linewidth=140.\mm;
+       }
+       \midi{
+               
+       }
+}
+
+
index 5acc702a01edda65a3a8de5090588746f6db7754..2a7ee4791876d8dc7c014910e32cb20026aeedf0 100644 (file)
@@ -1,6 +1,2 @@
-% bug or feature?
-\score { \notes { c8 c8
-  % needed to force auto-beam:
-  % c4
 
-}}
+\score {\notes c4 }
diff --git a/input/bugs/voice-switch.ly b/input/bugs/voice-switch.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/test/cue-notes.ly b/input/test/cue-notes.ly
new file mode 100644 (file)
index 0000000..7dba0a4
--- /dev/null
@@ -0,0 +1,46 @@
+
+% add cue notes context
+\paper {
+       CueVoiceContext = \translator {
+            \VoiceContext
+            \name CueVoice;
+            basicNoteHeadProperties \push #'font-size = #-1
+            basicStemProperties \push #'font-size = #-1
+            basicBeamProperties \push #'font-size = #-1
+            basicTextScriptProperties \push #'font-size = #-1
+            basicSlurProperties \push #'font-size = #-1
+            basicLocalKeyProperties \push #'font-size = #-1
+       };
+       \translator{ \CueVoiceContext }
+       StaffContext = \translator{\StaffContext
+               \accepts "CueVoice";
+       }; 
+}
+
+\paper {
+    StaffContext = \translator{
+       \StaffContext
+       \remove "Time_signature_engraver";
+    };
+    \translator { \StaffContext }   
+    \translator{
+      \VoiceContext
+      \remove "Auto_beam_engraver";
+     }
+     \translator {
+         \ScoreContext
+         barScriptPadding = #2.0
+         markScriptPadding = #4.0
+         barNumberScriptPadding = #15
+     }
+}
+
+\score{
+  \notes \relative c' \context Voice
+      {
+        c4 c4 g'2 
+        \context CueVoice { r2 [f16 f f f] [a f f f] }
+       c4 c4 g'2
+      }
+}
+
index c674bd4416dc8281a959aae5aba33d2c09ce78c3..17244b7d77dc208cee0076b571847dd2f872f200 100644 (file)
@@ -38,7 +38,8 @@
                \context StaffCombineStaff=one \skip 1*9;
                \context StaffCombineStaff=two \skip 1*9;
                \context StaffCombineStaff=one \partcombine StaffCombineStaff
-                       \context StaffCombineThread=one \notes\relative c''
+                       \context StaffCombineVoice=one \notes\relative c''
+                       %\context StaffCombineThread=one \notes\relative c''
                                {
                                        c4 d e f
                                        c d e f
@@ -51,7 +52,8 @@
                                        b b b b
                                        d1
                                }
-                       \context StaffCombineThread=two \notes\relative c''
+                       \context StaffCombineVoice=two \notes\relative c''
+                       %\context StaffCombineThread=two \notes\relative c''
                                {
                                        c4 d e f
                                        c d e f
                                }
                >
        >
-       \paper{
+       \paper {
+
+               textheight = 295.0\mm;
+               linewidth = 180.0\mm;
+
+               \translator{ \HaraKiriStaffContext }
                %
                % The Voice combine hierarchy
                %
@@ -78,6 +85,8 @@
                \translator{
                        \VoiceContext
                        \name "VoiceCombineVoice";
+                       soloText = #"I."
+                       soloIIText = #"II."
                        \remove "Rest_engraver";
                        \accepts "VoiceCombineThread";
                }
                \translator{
                        \ThreadContext
                        \name "StaffCombineThread";
-%%
-%%                     \remove "A2_devnull_engraver";
-%%                     \remove "Note_heads_engraver";
                }
                \translator{
                        \VoiceContext
                        \name "StaffCombineVoice";
                        \accepts "StaffCombineThread";
-
-                       \remove "Rest_engraver";
-                       \remove "Dot_column_engraver";
-                       \remove "Stem_engraver";
-                       \remove "Beam_engraver";
-                       \remove "Auto_beam_engraver";
-                       %\include "auto-beam-settings.ly";
-
-                       \remove "Chord_tremolo_engraver";
-                       \remove "Melisma_engraver";
-                       \remove "Text_engraver";
-                       \remove "A2_engraver";
-
-                       \remove "Piano_pedal_engraver";
-                       \remove "Script_engraver";
-                       \remove "Script_column_engraver";
-                       \remove "Rhythmic_column_engraver";
-                       \remove "Slur_engraver";
-                       \remove "Tie_engraver";
-
-%%                     \consists "A2_devnull_engraver";
-%%                     \consists "Note_heads_engraver";
+                       \consists "Thread_devnull_engraver";
                }
                \translator {
                        \HaraKiriStaffContext
                        \name "StaffCombineStaff";
                        \accepts "StaffCombineVoice";
 
-                       \consists "Rest_engraver";
-                       \consists "Dot_column_engraver";
-                       \consists "Stem_engraver";
-                       \consists "Beam_engraver";
-                       \consists "Auto_beam_engraver";
-                       \include "auto-beam-settings.ly";
-
-                       \consists "Chord_tremolo_engraver";
-                       \consists "Melisma_engraver";
-                       \consists "Text_engraver";
-                       \consists "A2_engraver";
-
-                       soloADue = ##f
-                       %soloADue = ##t
-
-                       \consists "Piano_pedal_engraver";
-                       \consists "Script_engraver";
-                       \consists "Script_column_engraver";
-                       \consists "Rhythmic_column_engraver";
-                       \consists "Slur_engraver";
-                       \consists "Tie_engraver";
+                       soloADue = ##t
+                       soloText = #""
+                       soloIIText = #""
+                       aDueText = #""
+                       splitInterval = #'(1 . 0)
                }
                \translator {
                        \StaffGroupContext
                        \accepts "VoiceCombineStaff";
                        \accepts "StaffCombineStaff";
                }
+               \translator{ \HaraKiriStaffContext }
+
                \translator {
                        \ScoreContext
                        \accepts "VoiceCombineStaff";
                        \accepts "StaffCombineStaff";
+                       skipBars = ##t 
+
+                       barScriptPadding = #2.0 % dimension \pt
+                       markScriptPadding = #4.0
+
+                       %% urg: in pt?
+                       barNumberScriptPadding = #15
+                       %% URG: this changes dynamics too
+                       %%textStyle = #"italic"
+                       timeSignatureStyle = #"C"
+                       instrumentScriptPadding = #60  %% urg, this is in pt
+                       instrScriptPadding = #40 %% urg, this is in pt
+                       marginScriptHorizontalAlignment = #1
+                       maximumRestCount = #1
                }
-%              linewidth = 40.\mm;
        }
-
        \midi{ 
                \tempo 4 = 150; 
 
index 141c70a7ff86f01950471c7c7bcb4255ea1e487e..0446b20bd044c49bc7be0d2c4264f02cf924b020 100644 (file)
 \score{
        \context PianoStaff <
-               \context Staff=one \skip 1*5;
-               \context Staff=two \skip 1*5;
-               \context Staff=one \partcombine Staff
-                       \context Voice=one \notes\relative c''
+               \context StaffCombineStaff=one \skip 1*6;
+               \context StaffCombineStaff=two \skip 1*6;
+               \context StaffCombineStaff=one \partcombine StaffCombineStaff
+                       \context StaffCombineVoice=one \notes\relative c''
                                {
                                        c4 d e f\break
                                        c d e f\break
                                        c d e f
                                        c4 d e f\break
                                        a8 a a a b b b b
+                                       a,4 a a a
                                }
-                       \context Voice=two \notes\relative c''
+                       \context StaffCombineVoice=two \notes\relative c''
                                {
                                        c2 e2
                                        c4 d e f
                                        c2 e2
                                        c,4 d e f
                                        a8 a a a b b b b
+                                       a4 a a a
                                }
                >
-       \paper{
-               %\translator { \HaraKiriStaffContext }
-               \translator {
-                       \HaraKiriStaffContext
-
-                       \consists "Rest_engraver";
-                       \consists "Dot_column_engraver";
-                       \consists "Stem_engraver";
-                       \consists "Beam_engraver";
-                       \consists "Auto_beam_engraver";
-                       \include "auto-beam-settings.ly";
+       \paper {
 
-                       \consists "Chord_tremolo_engraver";
-                       \consists "Melisma_engraver";
-                       \consists "Text_engraver";
-                       \consists "A2_engraver";
+               textheight = 295.0\mm;
+               linewidth = 180.0\mm;
 
-                       soloADue = ##f
-
-                       \consists "Piano_pedal_engraver";
-                       \consists "Script_engraver";
-                       \consists "Script_column_engraver";
-                       \consists "Rhythmic_column_engraver";
-                       \consists "Slur_engraver";
-                       \consists "Tie_engraver";
+               \translator{ \HaraKiriStaffContext }
+               %
+               % The Voice combine hierarchy
+               %
+               \translator{
+                       \ThreadContext
+                       \name "VoiceCombineThread";
+                       \consists "Rest_engraver";
                }
                \translator{
                        \VoiceContext
-
+                       \name "VoiceCombineVoice";
+                       soloText = #"I."
+                       soloIIText = #"II."
                        \remove "Rest_engraver";
-                       \remove "Dot_column_engraver";
-                       \remove "Stem_engraver";
-                       \remove "Beam_engraver";
-                       \remove "Auto_beam_engraver";
-                       %\include "auto-beam-settings.ly";
+                       \accepts "VoiceCombineThread";
+               }
+               \translator{
+                       \HaraKiriStaffContext
+                       \consists "Mark_engraver";
+                       \name "VoiceCombineStaff";
+                       \accepts "VoiceCombineVoice";
+               }
 
-                       \remove "Chord_tremolo_engraver";
-                       \remove "Melisma_engraver";
-                       \remove "Text_engraver";
-                       \remove "A2_engraver";
+               %
+               % The Staff combine hierarchy
+               %
+               \translator{
+                       \ThreadContext
+                       \name "StaffCombineThread";
+               }
+               \translator{
+                       \VoiceContext
+                       \name "StaffCombineVoice";
+                       \accepts "StaffCombineThread";
+                       \consists "Thread_devnull_engraver";
+               }
+               \translator {
+                       \HaraKiriStaffContext
+                       \name "StaffCombineStaff";
+                       \accepts "StaffCombineVoice";
 
-                       \remove "Piano_pedal_engraver";
-                       \remove "Script_engraver";
-                       \remove "Script_column_engraver";
-                       \remove "Rhythmic_column_engraver";
-                       \remove "Slur_engraver";
-                       \remove "Tie_engraver";
+                       soloADue = ##t
+                       soloText = #""
+                       soloIIText = #""
+                       aDueText = #""
+                       splitInterval = #'(1 . 0)
 
-                       \consists "A2_devnull_engraver";
-                       \consists "Note_heads_engraver";
                }
-               \translator{
-                       \ThreadContext
-                       \remove "A2_devnull_engraver";
-                       \remove "Note_heads_engraver";
+               \translator {
+                       \StaffGroupContext
+                       \accepts "VoiceCombineStaff";
+                       \accepts "StaffCombineStaff";
+               }
+               \translator{ \HaraKiriStaffContext }
+
+               \translator {
+                       \ScoreContext
+                       \accepts "VoiceCombineStaff";
+                       \accepts "StaffCombineStaff";
+                       skipBars = ##t 
+
+                       barScriptPadding = #2.0 % dimension \pt
+                       markScriptPadding = #4.0
+
+                       %% urg: in pt?
+                       barNumberScriptPadding = #15
+                       %% URG: this changes dynamics too
+                       %%textStyle = #"italic"
+                       timeSignatureStyle = #"C"
+                       instrumentScriptPadding = #60  %% urg, this is in pt
+                       instrScriptPadding = #40 %% urg, this is in pt
+                       marginScriptHorizontalAlignment = #1
+                       maximumRestCount = #1
                }
-               linewidth = 40.\mm;
        }
 }
diff --git a/lily/a2-devnull-engraver.cc b/lily/a2-devnull-engraver.cc
deleted file mode 100644 (file)
index ab905a4..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-  a2-devnull-engraver.cc -- implement A2_devnull_engraver
-
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#include "engraver.hh"
-#include "item.hh"
-#include "musical-request.hh"
-#include "translator-group.hh"
-
-class A2_devnull_engraver : public Engraver
-{
-public:
-  VIRTUAL_COPY_CONS (Translator);
-  
-protected:
-  virtual void acknowledge_element (Score_element_info);
-  virtual bool do_try_music (Music *);
-};
-
-ADD_THIS_TRANSLATOR (A2_devnull_engraver);
-/*
-  Maybe this is too crude.
-  It would probably be better to have a devnull engraver in StaffContext,
-  that acknowledges stuff and suicides it.
- */
-bool
-A2_devnull_engraver::do_try_music (Music *m)
-{
-  return false;
-  if (1 //daddy_trans_l_->id_str_ == "two"
-      && (to_boolean (get_property ("unison"))
-         || to_boolean (get_property ("unisilence"))))
-    {
-      /*
-       We mustn't junk Rest requests
-       */
-      if (Span_req *s = dynamic_cast <Span_req *> (m))
-       {
-         if (s->span_type_str_ == "slur"
-             || s->span_type_str_ == "beam"
-             || s->span_type_str_ == "crescendo"
-             || s->span_type_str_ == "decrescendo")
-           {
-             return true;
-           }
-         return false;
-       }
-      else if (Tie_req *t = dynamic_cast<Tie_req*> (m))
-       {
-         return true;
-       }
-      else if (Text_script_req *d = dynamic_cast <Text_script_req*> (m))
-       {
-         return true;
-       }
-    }
-  return false;
-}
-
-void
-A2_devnull_engraver::acknowledge_element (Score_element_info i)
-{
-  if (daddy_trans_l_->id_str_ == "two"
-      && (to_boolean (get_property ("unison"))
-         || to_boolean (get_property ("unisilence")))
-      && to_boolean (get_property ("soloADue")))
-    i.elem_l_->suicide ();
-}
index ec4a498c74036cdb8e51bf3d8c104dd155b3e65a..cd4a350c85267b0d02cccd0afa940ce8417c2d43 100644 (file)
@@ -69,9 +69,9 @@ Auto_change_iterator::change_to (Music_iterator *it, String to_type,
 Pitch_interrogate_req* spanish_inquisition; // nobody expects it
 
 void
-Auto_change_iterator::do_process (Moment m)
+Auto_change_iterator::process (Moment m)
 {
-  Music_wrapper_iterator::do_process (m);
+  Music_wrapper_iterator::process (m);
 
   if (!spanish_inquisition)
     spanish_inquisition = new Pitch_interrogate_req;
index 36eb168f291f12227fc15d18d7d012c4d1c32b1c..7bd04e1e89f79e2e52b486710f957fea7e276435 100644 (file)
@@ -24,7 +24,7 @@ Change_iterator::error (String reason)
   /*
     GUHG!
    */
-  String warn2= "Change_iterator::do_process (): " 
+  String warn2= "Change_iterator::process (): " 
     + report_to_l ()->type_str_ + " = `"
     + report_to_l ()->id_str_ + "': ";
   warning (warn2);
@@ -35,7 +35,7 @@ Change_iterator::error (String reason)
   move to construct_children ?
  */
 void
-Change_iterator::do_process (Moment m)
+Change_iterator::process (Moment m)
 {
   Translator_group * current = report_to_l ();
   Translator_group * last = 0;
@@ -80,7 +80,7 @@ Change_iterator::do_process (Moment m)
       }
   else
     error (_ ("none of these in my family"));
-  Music_iterator::do_process (m);
+  Simple_music_iterator::process (m);
 }
 
 
index e853e851da6996810dfefbd3c8b17389dd9de382..0f86e33d98a77cd6899a22951ddaf4fc3bf73c19 100644 (file)
@@ -31,7 +31,7 @@ Chord_tremolo_iterator::Chord_tremolo_iterator()
 }
 
 void
-Chord_tremolo_iterator::do_process (Moment m)
+Chord_tremolo_iterator::process (Moment m)
 {
   if (!m)
     {
@@ -47,9 +47,9 @@ Chord_tremolo_iterator::do_process (Moment m)
 
 
 Moment
-Chord_tremolo_iterator::next_moment () const
+Chord_tremolo_iterator::pending_moment () const
 {
-  return child_iter_p_->next_moment () / factor_;
+  return child_iter_p_->pending_moment () / factor_;
 }
 
 bool
@@ -70,8 +70,3 @@ Chord_tremolo_iterator::try_music_in_children (Music  *m) const
 }
 
 
-void
-Chord_tremolo_iterator::do_print () const
-{
-  child_iter_p_->print  ();
-}
index 0593606bb6f852073fdf838253e1537b44bc14cd..a2da4e1b2b32db16712b4286b72c20f3e1cd8544 100644 (file)
@@ -130,9 +130,12 @@ Dynamic_engraver::do_process_music ()
     }
 
   /*
-    TODO: should finish and create new spanner if vertical dyn-direction is changed.
+    finish side position alignment if the (de)cresc ends here, and
+    there are no new dynamics.
+    
    */
-  else if (!accepted_spanreqs_drul_[START] && !text_req_l_)
+  else if (accepted_spanreqs_drul_[STOP]
+          && !accepted_spanreqs_drul_[START] && !text_req_l_)
     {
       finished_line_spanner_ = line_spanner_;
       line_spanner_ = 0;
@@ -159,7 +162,12 @@ Dynamic_engraver::do_process_music ()
        as (de)crecsendo, b.o. line-breaking.
        */
 
+  
 
+  /*
+    maybe we should leave dynamic texts to the text-engraver and
+    simply acknowledge them?
+  */
   if (text_req_l_)
     {
       String loud = text_req_l_->text_str_;
@@ -284,31 +292,17 @@ void
 Dynamic_engraver::do_removal_processing ()
 {
   typeset_all ();
-
-#if 0  
-  if (cresc_p_)
-    {
-      typeset_element (cresc_p_ );
-      finished_cresc_p_ = cresc_p_;
-
-      current_cresc_req_->origin ()->warning (_ ("unterminated (de)crescendo"));
-    }
   if (line_spanner_)
     {
       finished_line_spanner_ = line_spanner_;
+      typeset_all ();
     }
-  typeset_all ();
-#else
+
   if (cresc_p_)
     {
       current_cresc_req_->origin ()->warning (_ ("unterminated (de)crescendo"));
       cresc_p_->suicide ();
     }
-  if (line_spanner_)
-    {
-      line_spanner_->suicide ();
-    }
-#endif
 }
 
 void
@@ -328,18 +322,6 @@ Dynamic_engraver::typeset_all ()
   if (finished_line_spanner_)
     {
       Side_position::add_staff_support (finished_line_spanner_);
-#if 0
-      if (!finished_line_spanner_->get_bound (LEFT))
-       {
-         Score_element * cmc
-           = unsmob_element (get_property ("currentMusicalColumn"));
-         finished_line_spanner_->set_bound (LEFT, cmc);
-       }
-      if (!finished_line_spanner_->get_bound (RIGHT))
-       finished_line_spanner_->set_bound (RIGHT,
-                                          finished_line_spanner_->get_bound (LEFT));
-      
-#endif
       extend_spanner_over_elements (finished_line_spanner_);
       typeset_element (finished_line_spanner_);
       finished_line_spanner_ = 0;
index 3ed300021e056ac87647595b3b16706c7f9bbbaf..1a7ac9e2c618c3717cf968c2d1f0de98bff4f69a 100644 (file)
@@ -14,7 +14,6 @@
 /*
   TODO:
     handle multiple requests
-    handle span requests (crescendo/decrescendo)
  */
 
 /**
index 514192a5cd84f4918c779782cf867c3154b37984..b8b4e1603373f49aeffdb1517eaf7b71c15d5f9f 100644 (file)
@@ -32,14 +32,14 @@ Folded_repeat_iterator::~Folded_repeat_iterator ()
 }
 
 Moment
-Folded_repeat_iterator::next_moment () const
+Folded_repeat_iterator::pending_moment () const
 {
   if (main_iter_p_)
     {
-      return main_iter_p_->next_moment ();
+      return main_iter_p_->pending_moment ();
     }
   else
-    return main_length_mom_ + alternative_iter_p_->next_moment ();
+    return main_length_mom_ + alternative_iter_p_->pending_moment ();
 }
 
 void
@@ -55,7 +55,7 @@ Folded_repeat_iterator::construct_children ()
 }
 
 void
-Folded_repeat_iterator::do_process (Moment m)
+Folded_repeat_iterator::process (Moment m)
 {
   if (!m)
     {
index de0ee4c4afbf9d9a6b2d5a994caaca064bbaf8d4..1713ce373637844343ec828a977c3c9b08e7d7b1 100644 (file)
@@ -83,73 +83,21 @@ Global_translator::finish ()
 void
 Global_translator::run_iterator_on_me (Music_iterator * iter)
 {
-  bool first = true;
+
   while (iter->ok () || moments_left_i ())
     {
       Moment w;
       w.set_infinite (1);
       if (iter->ok ())
        {
-         w = iter->next_moment();
-
-         if (!first)
-           iter->next ();
-         else
-           first = false;
+         w = iter->pending_moment();
       
          DEBUG_OUT << "proccing: " << w << '\n';
-         if (flower_dstream && !flower_dstream->silent_b ("walking"))
-           iter->print();
        }
 
       w = sneaky_insert_extra_moment (w);
       prepare (w);
-      
-      if (flower_dstream && !flower_dstream->silent_b ("walking"))
-       print();
-
       iter->process (w);
-
-      /*
-       Urg, this is request_chord_iterator.
-       */
-      for (SCM i = iter->get_music (); gh_pair_p (i); i = SCM_CDR (i))
-       {
-         assert (gh_pair_p (i));
-         SCM p = SCM_CAR (i);
-         Music *m = unsmob_music (SCM_CAR (p));
-         Translator *t = unsmob_translator (SCM_CDR (p));
-         assert (m);
-         assert (t);
-         for (SCM s = dynamic_cast<Music_sequence *> (m)->music_list ();
-              gh_pair_p (s);  s = SCM_CDR (s))
-           {
-             Music *m = unsmob_music (SCM_CAR (s));
-             if (Request* r = dynamic_cast<Request*> (m))
-               {
-                 bool b = t->try_music (m);
-                 if (!b)
-                   m->origin ()->warning (_f ("Junking request: `%s'",
-                                              classname(m)));
-               }
-             else
-               m->origin ()->warning (_f ("Huh?  Not a Request: `%s'",
-                                          classname (m)));
-           }
-         if (! dynamic_cast<Music_sequence *> (m))
-           {
-             bool b = t->try_music (m);
-             if (!b)
-               {
-                 /*
-                   Children?
-                 */
-                 printf ("junking:\n");
-                 m->print ();
-                 t->print ();
-               }
-           }
-       }
       
       process ();
     }
index 86e8fa9a1effc4f2467afcdd70127bbb974e90b6..ddcd3a401b34a33eb764f8a1c1c0fbca42463e11 100644 (file)
@@ -27,7 +27,7 @@ Grace_iterator::construct_children ()
 }
 
 void
-Grace_iterator::do_process (Moment m)
+Grace_iterator::process (Moment m)
 {
   Global_translator * t = dynamic_cast<Global_translator*>(report_to_l ());
   if (t)
@@ -42,11 +42,10 @@ Grace_iterator::do_process (Moment m)
     {
       warning (_("no Grace context available")); 
     }
-  Music_iterator::do_process (m);
 }
 
 Moment
-Grace_iterator::next_moment () const
+Grace_iterator::pending_moment () const
 {
   return 0;
 }
index 5160fac29371905c03de153f3854e1087bf26ed5..72b463c7efa39bd7ee6aea96f5ec4f420ddeb72b 100644 (file)
@@ -20,7 +20,7 @@ public:
   Auto_change_iterator ();
 
 protected:
-  virtual void do_process (Moment);  
+  virtual void process (Moment);  
 
 private:
   Direction where_dir_;
index f52eb63120164d80bfdfbc9424ef174c6b1c13ee..8714801b3f2f828e8d6e131ce844eb640068f8ca 100644 (file)
 #ifndef CHANGE_ITERATOR_HH
 #define CHANGE_ITERATOR_HH
 
-#include "music-iterator.hh"
+#include "simple-music-iterator.hh"
 
 
-class Change_iterator : public Music_iterator
+class Change_iterator : public Simple_music_iterator
 {
 public:
   VIRTUAL_COPY_CONS (Music_iterator);
   /* constructor is public */
-  virtual void do_process (Moment);
+  virtual void process (Moment);
 
 private:
   void  error (String);
index f83e497a31d6522784438dff02b2896dec225904..3f08463c36bfac24de1f6a4ca3659aa1fefe4afb 100644 (file)
@@ -20,11 +20,10 @@ public:
 
 protected:
   virtual ~Chord_tremolo_iterator ();
-  virtual Moment next_moment () const;
+  virtual Moment pending_moment () const;
   virtual void construct_children  () ;
   virtual bool ok () const;
-  virtual void do_print () const;
-  virtual void do_process (Moment) ;
+  virtual void process (Moment) ;
   virtual Music_iterator *try_music_in_children (Music *) const;
 
 private:
index 7ef86dda91242868b4776ea19ebd89fc7d372c27..875024650c7bf7f2d1f20eddb60d6b46a43e03b8 100644 (file)
@@ -48,7 +48,7 @@ public:
 
   Tempo_req();
 protected:
-    virtual void do_print () const;
+  virtual void do_print () const;
   VIRTUAL_COPY_CONS(Music);
   bool do_equal_b (Request const *) const;
 };
index c5f73658dfa592a7896f9bacb75a88ab862dc94b..6217df1beef06d3026ba5e642991239313051fb9 100644 (file)
@@ -24,14 +24,14 @@ public:
   ~Folded_repeat_iterator ();
   
   virtual void construct_children ();
-  virtual Moment next_moment () const;
+  virtual Moment pending_moment () const;
   virtual bool ok () const;
 
 protected:
   void enter_alternative ();
   void leave_body ();
   
-  virtual void do_process (Moment);
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
 
 private:
index 49db1a9d39701a001acc356112496ec3c59bb02b..4806037d289b1f1f9bf69b0c849c1f0cb2cb195f 100644 (file)
@@ -18,9 +18,9 @@ public:
   VIRTUAL_COPY_CONS (Music_iterator);
   ~Grace_iterator ();
   virtual void construct_children () ;
-  virtual void do_process (Moment);
+  virtual void process (Moment);
 
-  Moment next_moment () const;
+  Moment pending_moment () const;
 };
 
 
index eada524f8048086bfafbe1ab68fea3606f8ca459..5d519abf663fda0097ebce8529ed5911940bf751 100644 (file)
@@ -21,12 +21,11 @@ public:
 
 protected:
   virtual void construct_children ();
-  virtual Moment next_moment () const;
-  virtual void do_process (Moment);
+  virtual Moment pending_moment () const;
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
 
   virtual bool ok () const;
-  virtual void do_print () const;
   virtual ~Lyric_combine_music_iterator ();
 
 private:
index 0bd535a6d5c7c9d5edd6174b626c53fdbf227958..55a5c87a812349e456279cd3e3e141a98d186e12 100644 (file)
@@ -44,18 +44,5 @@ IMPLEMENT_ARITHMETIC_OPERATOR (Moment, % );
 INSTANTIATE_COMPARE (Moment const&, Rational::compare);
 
 
-/**
-  A really big time-moment.
-
-  Windhoze-suck-suck-suck-suck-suck-thank-you-cygnus
-
-  I get tired of all these incompatibilities.  Let's just assume that
-  INT_MAX is really, really, really big.
-
-  Can't we name this Saint_jut_mom (Sintjuttemis ?)  */
-  
-/* URG ! WE HAVE TWO RATIONAL INFINITIES! */
-const Moment infinity_mom = INT_MAX;
-
 #endif /* MOMENT_HH */
 
index 7ea76005a59aa496a85d5c5f2e43e0da64873955..2f9c6cf7cc887f3109c0b8353a75972315dbc396 100644 (file)
 #include "virtual-methods.hh"
 #include "interpretation-context-handle.hh"
 
-/** Walk through music and deliver music to translation units, synced
-  in time.  This class provides both the implementation of the shared
-  code, and the public interface.
-
-  Derived classes should only have a public constructor.
-  The state of an iterator would be the intersection of the particular music 
-  construct with one point in musical time.
- */
+/** 
+  Conceptually a music-iterator operates on a queue of musical events
+  that are pending. This queue does not actually exist, but it is a
+  way of viewing and traversing music-expressions.
+
+  
+  ok () -- events left ?
+
+  pending_mom () -- time tag of the next event to be processed.
+  
+  process (M) -- process all at M (Precondition: no events exist before
+    M).  Side-effects:
+    
+    * This removes all events at M from the pending queue.
+
+    * Typically this reports the music to an interpretation context,
+    thus changing the state of the interpretation context.
+
+  get_music (M) -- return all events starting at M (pre: no events
+    before M).  Side effects:
+
+    * This removes all events at M from the pending queue.
+
+  Because next (M) is rolled into process () as a side effect,
+  we need to roll next (M) into get_music too.  Urg.
+    
+*/
 class Music_iterator
 {
 public:
@@ -52,51 +71,27 @@ public:
   static Music_iterator* static_get_iterator_p (Music * mus);
   void init_translator (Music  *, Translator_group *); 
 
-  ///  Find the next interesting point in time.
-  virtual Moment next_moment () const;
-
-
-  ///Are we finished with this piece of music?
+  virtual Moment pending_moment () const;
   virtual bool ok () const;
-
-  virtual SCM get_music ();
-  virtual bool next ();
-
-  void process (Moment until);
+  virtual SCM get_music (Moment until)const;
+  virtual void process (Moment until);
 
   /**
     Construct sub-iterators, and set the translator to 
     report to.
    */
   virtual void construct_children ();
-  void print () const;
 
 protected:
   Music  * music_l_;
 
-  /// ugh. JUNKME
-  bool first_b_;
-
-  /**
-    Do the actual printing.  This should be overriden in derived classes.  It 
-    is called by #print#, in the public interface
-   */
-  virtual void do_print () const;
-    
-  /**
-    Find a bottom notation context to deliver requests to.
-   */
-  virtual Translator_group* get_req_translator_l ();
-
   /**
     Get an iterator for MUS, inheriting the translation unit from THIS.
    */
   Music_iterator* get_iterator_p (Music *) const;
 
-  virtual void do_process (Moment);
-
   virtual Music_iterator* try_music_in_children (Music *) const;
-  
+
 private:
   Interpretation_context_handle handle_;
 };
index edb6b8a4d899b58159aba4dad6db436ff75cb563..cbe4fa382715944a173161b5a9c088ebd4a0d47a 100644 (file)
@@ -27,14 +27,12 @@ public:
   ~Music_wrapper_iterator ();
 
   virtual void construct_children  () ;
-  virtual Moment next_moment () const;
+  virtual Moment pending_moment () const;
   virtual bool ok () const;
-  virtual SCM get_music ();
-  virtual bool next ();
+  virtual SCM get_music (Moment)const;
 
 protected:
-  virtual void do_print () const;
-  virtual void do_process (Moment);
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
 
   Music_iterator *child_iter_p_;
index ee27bebb3a5467d71d84a660fb47b0e8bae53b13..4400e458ee5b9438209c4f54e18d24c6130b8be4 100644 (file)
@@ -22,14 +22,11 @@ protected:
   virtual ~Part_combine_music_iterator ();
 
   virtual void construct_children ();
-  virtual Moment next_moment () const;
-  virtual void do_process (Moment);
+  virtual Moment pending_moment () const;
+  virtual void process (Moment);
+  virtual SCM get_music (Moment)const;
   virtual Music_iterator *try_music_in_children (Music *) const;
-
   virtual bool ok () const;
-  virtual bool next ();
-  virtual SCM get_music ();
-  virtual void do_print () const;
 
 private:
   void change_to (Music_iterator*, String, String);
index bda6483ec967ed3aa0eaad276d48d4e057637222..cd8aace3f05bed0d39a089c7dec6b2a1c04cb88b 100644 (file)
@@ -10,7 +10,7 @@
 #ifndef PROPERTY_ITERATOR_HH
 #define PROPERTY_ITERATOR_HH
 
-#include "music-iterator.hh"
+#include "simple-music-iterator.hh"
 
 
 
 /**
   Iterate a property.  
  */
-class Property_iterator : public Music_iterator
+class Property_iterator : public Simple_music_iterator
 {
 public:
   VIRTUAL_COPY_CONS (Music_iterator);
   /* construction */
 protected:
-  virtual void do_process (Moment);
+  virtual void process (Moment);
 };
 
-class Push_property_iterator : public Music_iterator
+class Push_property_iterator : public Simple_music_iterator
 {
 public:
   VIRTUAL_COPY_CONS (Music_iterator);
 protected:
   /* construction */
-  virtual void do_process (Moment);
+  virtual void process (Moment);
 };
 
-class Pop_property_iterator : public Music_iterator
+class Pop_property_iterator : public Simple_music_iterator
 {
 public:
   VIRTUAL_COPY_CONS (Music_iterator);
 protected:
   /* construction */
-  virtual void do_process (Moment);
+  virtual void process (Moment);
 };
 
 
index 0e820f7b1f62ea90fd3dfc76c87805a1c8a1823d..5d6602add1cf34a7ed1f938ee57a9c5a08696a62 100644 (file)
 #ifndef REQUEST_ITER_HH
 #define REQUEST_ITER_HH
 
-#include "music-iterator.hh"
+#include "simple-music-iterator.hh"
 
 /**
    Walk through a Request_chord
  */
-class Request_chord_iterator : public Music_iterator
+class Request_chord_iterator : public Simple_music_iterator
 {
   Request_chord * elt_l () const;
   /**
-     cache elt_l ()->length_mom ().
+     Find a bottom notation context to deliver requests to.
    */
-  Moment elt_length_mom_;
-  bool last_b_;
+  virtual Translator_group* get_req_translator_l ();
 
+
+  /*
+    Since Request_chord_iterator has no list-cursor internally, we
+    must use a status variable to adminstrate where we are */
+  
+  enum { NONE_DONE, START_DONE, END_DONE }  status_;
 public:
   VIRTUAL_COPY_CONS (Music_iterator);
   Request_chord_iterator ();
   Request_chord_iterator (Request_chord_iterator const&);
-  
-  virtual bool next ();
-  virtual bool ok () const;
 
+  virtual SCM get_music (Moment) const;
 protected:
-  virtual void do_process (Moment);
-  virtual Moment next_moment() const;
+  virtual void process (Moment);
   virtual void construct_children();
-  virtual void do_print() const;
 };
 
 
diff --git a/lily/include/request-iterator.hh b/lily/include/request-iterator.hh
deleted file mode 100644 (file)
index e69de29..0000000
index 661ce709b40099d44979ad6335666b2e6f050dbf..5661f260bd6bd58579af7fe6e2e7f636ebc8a645 100644 (file)
@@ -24,14 +24,12 @@ public:
   virtual ~Sequential_music_iterator ();
 
   virtual void construct_children ();
-  virtual Moment next_moment () const;
+  virtual Moment pending_moment () const;
   virtual bool ok () const;
-  virtual SCM get_music ();
-  virtual bool next ();
+  virtual SCM get_music (Moment)const;
 
 protected:
-  virtual void do_print() const;
-  virtual void do_process (Moment);
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
 
 private:
index f81a4cd629ba5a74ea5c0f037452a51bb731f23c..6d86c1c35cddb93f57bca56ce245bf6165512d46 100644 (file)
 
 class Simple_music_iterator : public Music_iterator
 {
+protected:
+  Moment length_mom_;
+  Moment last_processed_mom_;
 public:
   VIRTUAL_COPY_CONS (Music_iterator);
   Simple_music_iterator ();
   Simple_music_iterator (Simple_music_iterator const &);
-  virtual void do_process (Moment);
+  virtual void process (Moment);
+  virtual bool ok()const;
+  virtual Moment pending_moment ()const;
+  virtual void construct_children ();
 };
 
 #endif /* SIMPLE_MUSIC_ITERATOR_HH */
index 20efba729ef222b4d4557513e1396a56964b088a..e5ecdcd14bf386ee75bbb5e50b25c3441b3c7ee9 100644 (file)
@@ -26,14 +26,12 @@ public:
   int cursor_i_;
 
   virtual void construct_children ();
-  virtual Moment next_moment () const;
+  virtual Moment pending_moment () const;
   virtual bool ok () const;
-  virtual bool next ();
-  virtual SCM get_music ();
+  virtual SCM get_music (Moment)const;
 
 protected:
-  virtual void do_print () const;
-  virtual void do_process (Moment);
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
 
 private:
index e124bf2d4266fba2d6fd10f82909f022a0d4f42f..e18716adc94c99b0b786a32ac921cb4430c0d757 100644 (file)
@@ -18,7 +18,7 @@ public:
   VIRTUAL_COPY_CONS (Music_iterator);
   /* construction */
 protected:
-  virtual void do_process (Moment);
+  virtual void process (Moment);
 };
 
 
index 08a51b5041fe38676decd81c0165ca3cf9ae3007..6ffdbb62aaf790969d2cc594b339b303907afa21 100644 (file)
@@ -47,13 +47,12 @@ public:
 
 protected:  
   virtual void construct_children ();
-  virtual Moment next_moment () const;
-  virtual void do_process (Moment);
+  virtual Moment pending_moment () const;
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
 
   virtual bool ok () const;
   virtual void next_element ();
-  virtual void do_print () const;
 };
 #endif /* UNFOLDED_REPEAT_ITERATOR_HH */
 
index ff1e6e1798f9a1c5c6165b0e5b5c63e7cdff5000..035b83b7c8d05547b47158bebd952bf2288000b7 100644 (file)
@@ -37,9 +37,9 @@ Lyric_combine_music_iterator::Lyric_combine_music_iterator ()
 }
 
 Moment
-Lyric_combine_music_iterator::next_moment () const
+Lyric_combine_music_iterator::pending_moment () const
 {
-  Moment musnext = music_iter_p_->next_moment ();
+  Moment musnext = music_iter_p_->pending_moment ();
   return musnext;
 }
 
@@ -49,12 +49,6 @@ Lyric_combine_music_iterator::ok () const
   return music_iter_p_->ok ();
 }
 
-void
-Lyric_combine_music_iterator::do_print () const
-{
-  music_iter_p_->print ();
-  lyric_iter_p_->print ();
-}
 
 void
 Lyric_combine_music_iterator::construct_children ()
@@ -66,9 +60,9 @@ Lyric_combine_music_iterator::construct_children ()
 }
 
 void
-Lyric_combine_music_iterator::do_process (Moment m)
+Lyric_combine_music_iterator::process (Moment m)
 {
-  Moment my_next = music_iter_p_->next_moment ();
+  Moment my_next = music_iter_p_->pending_moment ();
   if (my_next > m)
     return;
   
@@ -90,13 +84,12 @@ Lyric_combine_music_iterator::do_process (Moment m)
                lyric_iter_p_->try_music (melisma_stop_req);
 #endif
              
-             Moment m= lyric_iter_p_->next_moment ();
+             Moment m= lyric_iter_p_->pending_moment ();
              lyric_iter_p_->process (m);
            }
        }
     }
   
-  Music_iterator::do_process (m);
 }
 
 Lyric_combine_music_iterator::~Lyric_combine_music_iterator ()
index bb7fa19310be419e3d8f364be985667ba2a05091..51ae61f1ce333ff0c6bd46d767dfb3492989f3e0 100644 (file)
 
 Music_iterator::Music_iterator ()
 {
-  first_b_ = true;
+  //  clone_i_ = 0;
 }
 
 Music_iterator::Music_iterator (Music_iterator const& src)
 {
-  first_b_ = src.first_b_;
+  //  clone_i_ = src.clone_i_ + 1;
   handle_ = *src.handle_.clone ();
   music_l_ = src.music_l_;
 }
@@ -57,39 +57,7 @@ Music_iterator::~Music_iterator ()
 {
 }
 
-void
-Music_iterator::do_print () const
-{
-}
-
-void
-Music_iterator::print () const
-{
-#ifndef NPRINT
-  if (!flower_dstream)
-    return ;
-  DEBUG_OUT << classname (this) << "{";
-  Translator_group *t =     report_to_l ();
-  DEBUG_OUT << "report to " << t->type_str_ << " = " << t->id_str_ << "\n";
-  if (ok ())
-    DEBUG_OUT << "next at " << next_moment () << " ";
-  else
-    DEBUG_OUT << "not feeling well today..";
-  do_print ();
-  DEBUG_OUT << "}\n";
-#endif
-}
-
-Translator_group*
-Music_iterator::get_req_translator_l ()
-{
-  assert (report_to_l ());
-  if (report_to_l ()->is_bottom_translator_b ())
-    return report_to_l ();
 
-  set_translator (report_to_l ()->get_default_interpreter ());
-  return report_to_l ();
-}
 
 
 Translator_group* 
@@ -111,46 +79,29 @@ Music_iterator::construct_children ()
 }
 
 Moment
-Music_iterator::next_moment () const
+Music_iterator::pending_moment () const
 {
   return 0;
 }
 
-void
-Music_iterator::process (Moment m)
-{
-  do_process (m);
-}
 
 void
-Music_iterator::do_process (Moment)
+Music_iterator::process (Moment)
 {
-  first_b_ = false;
 }
 
 bool
 Music_iterator::ok () const
 {
-  return first_b_;
+  return false;
 }
 
 SCM
-Music_iterator::get_music ()
+Music_iterator::get_music (Moment)const
 {
-  if (ok ())
-    return scm_listify (scm_cons (music_l_->self_scm (),
-                                 report_to_l ()->self_scm ()),
-                       SCM_UNDEFINED);
   return SCM_EOL;
 }
 
-bool
-Music_iterator::next ()
-{
-  first_b_ = false;
-  return ok ();
-}
-
 Music_iterator*
 Music_iterator::static_get_iterator_p (Music *m)
 {
index 46f9b6da26279fbf7d97acbaa400a99f84324789..834494c88d1db95fc19bf8fc4a3cea04aa298cc9 100644 (file)
@@ -4,7 +4,6 @@
   source file of the GNU LilyPond music typesetter
   
   (c) 1998--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
  */
 
 
@@ -27,11 +26,6 @@ Music_wrapper_iterator::~Music_wrapper_iterator ()
   delete child_iter_p_;
 }
 
-void
-Music_wrapper_iterator::do_print () const
-{
-  child_iter_p_->print ();
-}
 
 void
 Music_wrapper_iterator::construct_children ()
@@ -47,31 +41,23 @@ Music_wrapper_iterator::ok () const
 }
 
 void
-Music_wrapper_iterator::do_process (Moment m)
+Music_wrapper_iterator::process (Moment m)
 {
   child_iter_p_->process (m);
-  Music_iterator::do_process (m);
 }
 
 SCM
-Music_wrapper_iterator::get_music ()
+Music_wrapper_iterator::get_music (Moment m)const
 {
-  return child_iter_p_->get_music ();
-}
-
-bool
-Music_wrapper_iterator::next ()
-{
-  return child_iter_p_->next ();
+  return child_iter_p_->get_music (m);
 }
 
 Moment
-Music_wrapper_iterator::next_moment () const
+Music_wrapper_iterator::pending_moment () const
 {
-  return child_iter_p_->next_moment ();
+  return child_iter_p_->pending_moment ();
 }
 
-
 Music_iterator*
 Music_wrapper_iterator::try_music_in_children (Music *m) const
 {
index 9ed054e1ec465206a1b820d3b9878ea0aebbc4af..9fa9bd7fe3b26f042fbe13428776fabd34c00d88 100644 (file)
@@ -28,17 +28,16 @@ Part_combine_music_iterator::~Part_combine_music_iterator ()
 }
 
 Moment
-Part_combine_music_iterator::next_moment () const
+Part_combine_music_iterator::pending_moment () const
 {
-  Moment first_next = infinity_mom;
+  Moment p;
+  p.set_infinite (1);
   if (first_iter_p_->ok ())
-    first_next = first_iter_p_->next_moment ();
-  Moment second_next = infinity_mom;
+    p = p <? first_iter_p_->pending_moment ();
+
   if (second_iter_p_->ok ())
-    second_next = second_iter_p_->next_moment ();
-  if (first_next == infinity_mom && second_next == infinity_mom)
-    return 0;
-  return first_next <? second_next;
+    p = p <? second_iter_p_->pending_moment ();
+  return p;
 }
 
 bool
@@ -48,30 +47,6 @@ Part_combine_music_iterator::ok () const
   return first_iter_p_->ok () || second_iter_p_->ok ();
 }
 
-SCM
-Part_combine_music_iterator::get_music ()
-{
-  return SCM_EOL;
-}
-
-bool
-Part_combine_music_iterator::next ()
-{
-  bool b = false;
-  if (first_iter_p_->ok ())
-    b = first_iter_p_->next ();
-  if (second_iter_p_->ok ())
-    b = second_iter_p_->next () || b;
-  return b;
-}
-
-void
-Part_combine_music_iterator::do_print () const
-{
-  first_iter_p_->print ();
-  second_iter_p_->print ();
-}
-
 void
 Part_combine_music_iterator::construct_children ()
 {
@@ -133,64 +108,54 @@ Part_combine_music_iterator::change_to (Music_iterator *it, String to_type,
 }
 
 void
-Part_combine_music_iterator::do_process (Moment m)
+Part_combine_music_iterator::process (Moment m)
 {
+
+  /*
+    TODO:
+    - Use three named contexts (be it Thread or Voice): one, two, solo.
+      Let user pre-set (pushproperty) stem direction, remove
+      dynamic-engraver, and such.
+    - staff-combiner must switch only on per-measure basis (maybe even on
+      per-line-basis, but that's not feasible).  Maybe set minimum lengths
+      of matching rhythm for combine/split?
+   */
   Part_combine_music const * p = dynamic_cast<Part_combine_music const* > (music_l_);
 
-  Moment now = next_moment ();
+  Moment now = pending_moment ();
 
   Array<Musical_pitch> first_pitches;
   Array<Duration> first_durations;
   if (first_iter_p_->ok ())
     {
-      Music_iterator* i = first_iter_p_->clone ();
-
-      /* Urg, silly first_b_ stuff */
-      if (now)
-       i->next ();
-
-      SCM s = i->get_music ();
-      if (gh_pair_p (s))
+      /* get_music () also performs next, modifying iterator */
+      Music_iterator *mi = first_iter_p_->clone ();
+      for (SCM i = mi->get_music (now); gh_pair_p (i); i = gh_cdr (i))
        {
-         if (Music_sequence* m = dynamic_cast<Music_sequence *> (unsmob_music (SCM_CAR (SCM_CAR (s)))))
-           {
-             for (SCM s = m->music_list (); gh_pair_p (s);  s = gh_cdr (s))
-               {
-                 Music *u = unsmob_music (gh_car (s));
-                 if (Melodic_req *r = dynamic_cast<Melodic_req *> (u))
-                       first_pitches.push (r->pitch_);
-                 if (Rhythmic_req *r = dynamic_cast<Rhythmic_req *> (u))
+         Music *m = unsmob_music (gh_car (i));
+         if (Melodic_req *r = dynamic_cast<Melodic_req *> (m))
+           first_pitches.push (r->pitch_);
+         if (Rhythmic_req *r = dynamic_cast<Rhythmic_req *> (m))
                    first_durations.push (r->duration_);
-               }
-           }
        }
+      delete mi;
     }
   
   Array<Musical_pitch> second_pitches;
   Array<Duration> second_durations;
   if (second_iter_p_->ok ())
     {
-      Music_iterator* i = second_iter_p_->clone ();
-
-      /* Urg, silly second_b_ stuff */
-      if (now)
-       i->next ();
-
-      SCM s = i->get_music ();
-      if (gh_pair_p (s))
+      Music_iterator *mi = second_iter_p_->clone ();
+      for (SCM i = mi->get_music (now); gh_pair_p (i); i = gh_cdr (i))
        {
-         if (Music_sequence* m = dynamic_cast<Music_sequence *> (unsmob_music (SCM_CAR (SCM_CAR (s)))))
-           {
-             for (SCM s = m->music_list (); gh_pair_p (s);  s = gh_cdr (s))
-               {
-                 Music *u = unsmob_music (gh_car (s));
-                 if (Melodic_req *r = dynamic_cast<Melodic_req *> (u))
-                   second_pitches.push (r->pitch_);
-                 if (Rhythmic_req *r = dynamic_cast<Rhythmic_req *> (u))
-                       second_durations.push (r->duration_);
-               }
-           }
+         Music *m = unsmob_music (gh_car (i));
+         if (Melodic_req *r = dynamic_cast<Melodic_req *> (m))
+           second_pitches.push (r->pitch_);
+         if (Rhythmic_req *r = dynamic_cast<Rhythmic_req *> (m))
+           second_durations.push (r->duration_);
        }
+      delete mi;
     }
   
   SCM interval = SCM_BOOL_F;
@@ -217,7 +182,7 @@ Part_combine_music_iterator::do_process (Moment m)
        second_until_ = new_until;
     }
 
-#if 1 /* DEBUG */
+#if 0 /* DEBUG */
   printf ("now: %s\n", now.str ().ch_C ());
   printf ("first: ");
   for (int i = 0; i < first_pitches.size (); i++)
@@ -307,16 +272,11 @@ Part_combine_music_iterator::do_process (Moment m)
       sd->set_property ("solo", b);
     }
 
-  /*
-    Hmm, shouldn't we check per iterator if next_moment < m?
-  */
   if (first_iter_p_->ok ())
     first_iter_p_->process (m);
   
   if (second_iter_p_->ok ())
     second_iter_p_->process (m);
-
-  Music_iterator::do_process (m);
 }
 
 Music_iterator*
@@ -329,3 +289,14 @@ Part_combine_music_iterator::try_music_in_children (Music *m) const
     return second_iter_p_->try_music (m);
 }
 
+
+SCM
+Part_combine_music_iterator::get_music (Moment m)const
+{
+  SCM s = SCM_EOL;
+  if (first_iter_p_)
+    s = gh_append2 (s,first_iter_p_->get_music (m));
+  if (second_iter_p_)
+    s = gh_append2 (second_iter_p_->get_music (m),s);
+  return s;
+}
index 3b6c47f9f7416b50c6cf9493e01d44006bcbaad3..ea8273d7611b1bf241f7530bd1d170c166cccf71 100644 (file)
   translation unit, and set the property.
   */
 void
-Property_iterator::do_process (Moment m)
+Property_iterator::process (Moment m)
 {
   SCM sym = music_l_->get_mus_property ("symbol");
   if (gh_symbol_p(sym))
     report_to_l ()->set_property (sym, music_l_->get_mus_property ("value"));
-  Music_iterator::do_process (m);
+  Simple_music_iterator::process (m);
 }
 
 void
-Push_property_iterator::do_process (Moment m)
+Push_property_iterator::process (Moment m)
 {
   SCM syms = music_l_->get_mus_property ("symbols");
   SCM eprop = music_l_->get_mus_property ("element-property");
@@ -33,15 +33,15 @@ Push_property_iterator::do_process (Moment m)
 
   Translator_def::apply_pushpop_property (report_to_l (), syms, eprop, val);
   
-  Music_iterator::do_process (m);
+  Simple_music_iterator::process (m);
 }
 
 void
-Pop_property_iterator::do_process (Moment m)
+Pop_property_iterator::process (Moment m)
 {
   SCM syms = music_l_->get_mus_property ("symbols");
   SCM eprop = music_l_->get_mus_property ("element-property");
   Translator_def::apply_pushpop_property (report_to_l (), syms, eprop, SCM_UNDEFINED);
   
-  Music_iterator::do_process (m);
+  Simple_music_iterator::process (m);
 }
index c13de02132a05674c81df4612ed0db8efafd0cfc..f463190a342dc3223c4939a5cdf54c902aba8516 100644 (file)
 
 Request_chord_iterator::Request_chord_iterator ()
 {
-  last_b_ = false;
 }
 
 Request_chord_iterator::Request_chord_iterator (Request_chord_iterator const &src)
-  : Music_iterator (src)
+  : Simple_music_iterator (src)
 {
-  last_b_ = src.last_b_;
-  elt_length_mom_ = src.elt_length_mom_;
+}
+
+Translator_group*
+Request_chord_iterator::get_req_translator_l ()
+{
+  assert (report_to_l ());
+  if (report_to_l ()->is_bottom_translator_b ())
+    return report_to_l ();
+
+  set_translator (report_to_l ()->get_default_interpreter ());
+  return report_to_l ();
 }
 
 void
 Request_chord_iterator::construct_children()
 {
-  elt_length_mom_ =elt_l ()->length_mom ();
+  Simple_music_iterator::construct_children ();
   get_req_translator_l();
 }
 
@@ -37,50 +45,34 @@ Request_chord_iterator::elt_l () const
   return (Request_chord*) music_l_;
 }
 
-bool
-Request_chord_iterator::ok() const
-{
-  return (elt_length_mom_ && !last_b_) || first_b_;
-}
-
-Moment
-Request_chord_iterator::next_moment() const
-{
-  Moment m (0);
-  if  (!first_b_)
-    m = elt_length_mom_;
-  return m;
-}
-
 
-void
-Request_chord_iterator::do_print() const
+SCM
+Request_chord_iterator::get_music (Moment)const
 {
-#ifndef NPRINT
-  DEBUG_OUT << "duration: " << elt_length_mom_;
-#endif
-}
-
-bool
-Request_chord_iterator::next ()
-{
-  if (first_b_)
-    first_b_ = false;
-  else
-    last_b_ = true;
-  return ok ();
+  SCM s = SCM_EOL;
+  if (music_l_)
+    {
+      Music_sequence * ms = dynamic_cast<Music_sequence*> (music_l_);
+     
+      for (SCM m = ms->music_list (); gh_pair_p (m); m = gh_cdr (m))
+       {
+         s = gh_cons (gh_car (m) , s);
+       }
+    }
+  return s;
 }
 
 void
-Request_chord_iterator::do_process (Moment)
+Request_chord_iterator::process (Moment m)
 {
-#if 0
-  // URG
-  if (first_b_)
+  last_processed_mom_ = m;
+  if (music_l_)
     {
-      for (SCM s = dynamic_cast<Music_sequence *> (get_music ())->music_list (); gh_pair_p (s);  s = gh_cdr (s))
+      for (SCM s = dynamic_cast<Music_sequence *> (music_l_)->music_list ();
+          gh_pair_p (s);  s = gh_cdr (s))
        {
          Music *mus = unsmob_music (gh_car (s));
+
          if (Request * req_l = dynamic_cast<Request*> (mus))
            {
              bool gotcha = try_music (req_l);
@@ -89,10 +81,9 @@ Request_chord_iterator::do_process (Moment)
            }
          else
            mus->origin ()->warning (_f ("Huh?  Not a Request: `%s'",
-                                                classname (mus)));
-                   }
-    }
+                                        classname (mus)));
+       }
 
-  next ();
-#endif
+     music_l_ =0;
+    }
 }
diff --git a/lily/request-iterator.cc b/lily/request-iterator.cc
deleted file mode 100644 (file)
index e69de29..0000000
index ce71cc36e1bae7cfe9eafc34d0618876fbc1c463..8218251942fa75c016bad1a52b259a0805b03489 100644 (file)
@@ -31,19 +31,14 @@ Sequential_music_iterator::~Sequential_music_iterator()
 {
   if (iter_p_)
     {
-      if (iter_p_->ok ())
+      /*      if (iter_p_->ok () )
        music_l_->origin ()->warning (_ ("Must stop before this music ends"));
+      */
       delete iter_p_;
       iter_p_ = 0;
     }
 }
 
-void
-Sequential_music_iterator::do_print() const
-{
-  if (iter_p_)
-    iter_p_->print();
-}
 
 void
 Sequential_music_iterator::construct_children()
@@ -93,69 +88,56 @@ Sequential_music_iterator::set_sequential_music_translator()
     set_translator (child_report);
 }
 
+
 SCM
-Sequential_music_iterator::get_music ()
-{
-  if (ok ())
-    return scm_listify (scm_cons (SCM_CAR (cursor_),
-                                 report_to_l ()->self_scm ()),
-                       SCM_UNDEFINED);
-      
-  return SCM_EOL;
-}
-  
-bool
-Sequential_music_iterator::next ()
+Sequential_music_iterator::get_music (Moment until)const
 {
 #if 0
-  if (ok ())
-    {
-      bool b = false;
-      if (iter_p_->ok ())
-       b = iter_p_->next ();
-      if (!b)
-       {
-         set_sequential_music_translator ();
-         leave_element ();
-         if (gh_pair_p (cursor_))
-           start_next_element ();
-         b = ok ();
+  /*
+     FIXME: get_music () is const, so we must operate on a copy of child-iter.
+  */
+  
+  SCM s = SCM_EOL;
+  while (1) 
+      {
+       Moment local_until = until - here_mom_;
+       while (iter_p_->ok ()) 
+         {
+           Moment here = iter_p_->pending_moment ();
+           if (here != local_until)
+             return s;
+           
+           s = gh_append2 (iter_p_->get_music (local_until), s);
+         }
+         
+         if (!iter_p_->ok ()) 
+           {
+             //              leave_element ();
+             
+             if (gh_pair_p (cursor_))
+               start_next_element ();
+             else
+               return s;
+           }
        }
-      return b;
-    }
-  return false;
-#else
-  if (ok ())
-    {
-      set_sequential_music_translator ();
-      leave_element ();
-      if (gh_pair_p (cursor_))
-       start_next_element ();
-      return ok ();
-    }
-  return false;
+  return s;
 #endif
+  return SCM_EOL;
 }
 
-/*
-  This should use get_music () and next ()
- */
 void
-Sequential_music_iterator::do_process (Moment until)
+Sequential_music_iterator::process (Moment until)
 {
-#if 1
-  return;
-#else
   if (ok ())
     {
-      //      while (1) 
+      while (1) 
        {
          Moment local_until = until - here_mom_;
          while (iter_p_->ok ()) 
            {
-             Moment here = iter_p_->next_moment ();
+             Moment here = iter_p_->pending_moment ();
              if (here != local_until)
-               return Music_iterator::do_process (until);
+               return ;
              
              iter_p_->process (local_until);
            }
@@ -168,17 +150,16 @@ Sequential_music_iterator::do_process (Moment until)
              if (gh_pair_p (cursor_))
                start_next_element ();
              else 
-               return Music_iterator::do_process (until);
+               return ;
            }
        }
     }
-#endif
 }
 
 Moment
-Sequential_music_iterator::next_moment() const
+Sequential_music_iterator::pending_moment() const
 {
-  return iter_p_->next_moment() + here_mom_;
+  return iter_p_->pending_moment() + here_mom_;
 }
 
 
index d6cc80b0f2388507b634bcb665e74968364084ff..a25147d4e9e7f6a0a806c40733cd8baf830dcd22 100644 (file)
 Simple_music_iterator::Simple_music_iterator ()
   : Music_iterator ()
 {
+  last_processed_mom_ = -1;
 }
 
 Simple_music_iterator::Simple_music_iterator (Simple_music_iterator const &src)
   : Music_iterator (src)
 {
+  last_processed_mom_ = -1;
 }
 
 void
-Simple_music_iterator::do_process (Moment m)
+Simple_music_iterator::construct_children ()
+{
+  length_mom_ = music_l_->length_mom ();
+}
+
+bool
+Simple_music_iterator::ok ()const
+{
+  return last_processed_mom_ < length_mom_;
+}
+
+Moment
+Simple_music_iterator::pending_moment ()const
+{
+  if (music_l_)
+    return Moment (0);
+  else
+    return length_mom_;
+}
+
+void
+Simple_music_iterator::process (Moment m)
 {
 #if 0
-  if (ok ())
+  /*
+    try_music () causes trouble for base classes
+   */
+  if (music_l_)
     {
-      bool b = try_music (get_music ());
+      bool b = try_music (music_l_);
       if (!b)
        music_l_->origin ()->warning (_f ("Junking music: `%s'",
                                          classname (music_l_)));
-
     }
-  Music_iterator::do_process (m);
 #endif
+  music_l_ = 0;
+  last_processed_mom_ = m;
 }
index 252a288f0d397938a8f86b2b82c7f07863530ac0..f860241448d502217871bbe109fe6edea643a556 100644 (file)
@@ -35,29 +35,19 @@ Simultaneous_music_iterator::~Simultaneous_music_iterator ()
   children_p_list_.junk ();
 }
 
-bool
-Simultaneous_music_iterator::next ()
-{
-  for (Cons<Music_iterator> **pp = &children_p_list_.head_; *pp;)
-    {
-      Music_iterator *i = (*pp)->car_;
-      if (i->ok ())
-       i->next ();
-      if (!i->ok ())
-       delete children_p_list_.remove_cons (pp);
-      else
-       pp = &(*pp)->next_;
-    }
-  return ok ();
-}
+/*
+  Should roll next () into this as well
 
+
+  huh? --hwn
+ */
 SCM
-Simultaneous_music_iterator::get_music ()
+Simultaneous_music_iterator::get_music (Moment m)const
 {
   SCM s = SCM_EOL;
   for (Cons<Music_iterator> *p = children_p_list_.head_; p; p = p->next_)
     {
-      s = gh_append2 (p->car_->get_music (), s);
+      s = gh_append2 (p->car_->get_music (m), s);
     }
   return s;
 }
@@ -97,23 +87,14 @@ Simultaneous_music_iterator::construct_children()
     }
 }
 
-void
-Simultaneous_music_iterator::do_print() const
-{
-#ifndef NPRINT
-  for (Cons<Music_iterator> *p = children_p_list_.head_; p; p = p->next_)
-    p->car_->print();
-#endif
-}
 
 void
-Simultaneous_music_iterator::do_process (Moment until)
+Simultaneous_music_iterator::process (Moment until)
 {
-#if 1
   for (Cons<Music_iterator> **pp = &children_p_list_.head_; *pp;)
     {
       Music_iterator * i = (*pp)->car_;
-      if  (i->next_moment() == until) 
+      if  (i->pending_moment() == until) 
        {
          i->process (until);
        }
@@ -122,18 +103,16 @@ Simultaneous_music_iterator::do_process (Moment until)
       else
        pp = &(*pp)->next_;
     }
-  Music_iterator::do_process (until);
-#endif
 }
 
 Moment
-Simultaneous_music_iterator::next_moment() const
+Simultaneous_music_iterator::pending_moment() const
 {
   Moment next;
   next.set_infinite (1);
   
   for (Cons<Music_iterator> *p = children_p_list_.head_; p; p = p->next_)
-    next = next <? p->car_->next_moment() ;
+    next = next <? p->car_->pending_moment() ;
   return next;
 }
 
index 2acdd0d99d079f39773dd0b781f1e36886b54bf0..763d77a3e585cb075cb7287d996f129b86961d22 100644 (file)
@@ -101,8 +101,7 @@ Slur_engraver::do_process_music ()
       if (slur_req_l->span_dir_ == STOP)
        {
          if (slur_l_stack_.empty ())
-           slur_req_l->origin ()->warning (_f ("can't find start of %s",
-                                               _ ("slur")));
+           slur_req_l->origin ()->warning (_f ("can't find start of slur"));
          else
            {
              Score_element* slur = slur_l_stack_.pop ();
index 5a1eadfe49f71383d9bc544d728049cc4144dd41..38bc89117df6efb3ebb2136327c3597c07fe26b6 100644 (file)
@@ -85,6 +85,7 @@ Span_dynamic_performer::do_process_music ()
       if (!span_start_req_l_)
        {
          span_req_l_drul_[STOP]->origin ()->warning (_ ("can't find start of (de)crescendo"));
+         span_req_l_drul_[STOP] = 0;
        }
       else
        {
index a19032f2ebfeaf4ce9fd0dd76e8d1acc02785293..7272c2d91e76f3c2ae03250394f9ef6ebcfae55c 100644 (file)
@@ -104,15 +104,8 @@ Spanner::do_break_processing ()
          span_p->set_bound(LEFT,bounds[LEFT]);
          span_p->set_bound(RIGHT,bounds[RIGHT]);
 
-#if 0
-         assert (bounds[LEFT]->line_l () ==
-                 bounds[RIGHT]->line_l ());
-
-         bounds[LEFT]->line_l ()->typeset_element (span_p);
-         broken_into_l_arr_.push (span_p);
-#else
-
-         if (bounds[LEFT]->line_l () != bounds[RIGHT]->line_l ())
+         if (bounds[LEFT]->line_l ()
+             && bounds[LEFT]->line_l () != bounds[RIGHT]->line_l ())
            {
              programming_error ("bounds[LEFT]->line_l () != bounds[RIGHT]->line_l ()");
 #if 0
@@ -129,13 +122,25 @@ Spanner::do_break_processing ()
 #endif
              span_p->suicide ();
            }
+         else if (!bounds[LEFT]->line_l ())
+           {
+             // bounds[LEFT]->line_l ()->typeset_element (span_p);
+             // broken_into_l_arr_.push (span_p);
+             programming_error ("bounds[LEFT]->line_l () == 0");
+             span_p->suicide ();
+           }
+         else if (!bounds[RIGHT]->line_l ())
+           {
+             // bounds[RIGHT]->line_l ()->typeset_element (span_p);
+             // broken_into_l_arr_.push (span_p);
+             programming_error ("bounds[RIGHT]->line_l () == 0");
+             span_p->suicide ();
+           }
          else
            {
              bounds[LEFT]->line_l ()->typeset_element (span_p);
              broken_into_l_arr_.push (span_p);
            }
-#endif
-         
        }
     }
   broken_into_l_arr_.sort (Spanner::compare);
index 4d72b074dbf1273afcdf7039a7827e26e0c40474..ffb578c120a4132cfff224872f8f68e221eb8768 100644 (file)
@@ -38,6 +38,9 @@ Text_engraver::do_try_music (Music *m)
 {
   if (Text_script_req *r = dynamic_cast<Text_script_req*> (m))
     {
+      if (r->style_str_ == "dynamic")
+       return false;
+      
       reqs_.push (r);
       return true;
     }
index 6c111441f9a259faad65d18225c76b9e938d65fd..f68a4d7d88304d2e11e7548813b306b49ca88117 100644 (file)
@@ -14,7 +14,7 @@
 #include "command-request.hh"
 
 void
-Time_scaled_music_iterator::do_process (Moment m)
+Time_scaled_music_iterator::process (Moment m)
 {
   if (!m)
     {
@@ -25,5 +25,5 @@ Time_scaled_music_iterator::do_process (Moment m)
        music_l_->origin ()->warning ( _("no one to print a tuplet start bracket"));
     }
 
-  Music_wrapper_iterator::do_process (m);
+  Music_wrapper_iterator::process (m);
 }
index 92b501f0a5578ab038f734810e0d128cb6bb4ec8..9a4155f54da58f9d0aa4b0b91045d233ca67258c 100644 (file)
@@ -105,9 +105,9 @@ Unfolded_repeat_iterator::ok () const
 }
 
 Moment
-Unfolded_repeat_iterator::next_moment () const
+Unfolded_repeat_iterator::pending_moment () const
 {
-  return done_mom_ + current_iter_p_->next_moment ();
+  return done_mom_ + current_iter_p_->pending_moment ();
 }
 
 void
@@ -135,7 +135,7 @@ Unfolded_repeat_iterator::construct_children ()
 }
 
 void
-Unfolded_repeat_iterator::do_process (Moment m) 
+Unfolded_repeat_iterator::process (Moment m) 
 {
   if (!m)
     {
@@ -155,22 +155,13 @@ Unfolded_repeat_iterator::do_process (Moment m)
            return;
        }
       
-      if (m - done_mom_ >= current_iter_p_->next_moment ())
+      if (m - done_mom_ >= current_iter_p_->pending_moment ())
        current_iter_p_->process (m - done_mom_);
       else
        return;
     }
 }
-  
-void
-Unfolded_repeat_iterator::do_print () const
-{
-#ifndef NPRINT
-  DEBUG_OUT << "count " << done_count_ << "done time " << Rational (done_mom_) << '\n';
-  DEBUG_OUT << "current: ";
-  current_iter_p_->print();
-#endif
-}
+
 
 Music_iterator* 
 Unfolded_repeat_iterator::try_music_in_children (Music  * m) const
index eb9bf8635446905161acf71dc13b1743e45078eb..93e17d18db96610c277a063c0654cb5448472af3 100644 (file)
@@ -17,11 +17,41 @@ public:
   VIRTUAL_COPY_CONS (Translator);
   
 protected:
+  virtual bool do_try_music (Music *m);
   virtual void acknowledge_element (Score_element_info);
 };
 
 ADD_THIS_TRANSLATOR (Voice_devnull_engraver);
 
+static char const *eat_spanners[] = {
+  "beam-interface",
+  "slur",
+  "dynamic-interface",
+  "crescendo-interface",
+  0
+};
+
+bool
+Voice_devnull_engraver::do_try_music (Music *m)
+{
+  if (daddy_trans_l_->id_str_ == "two"
+      && (to_boolean (get_property ("unison"))
+         || to_boolean (get_property ("unisilence"))))
+    {
+      for (char const **p = eat_spanners; *p; p++)
+       {
+         if (Span_req *s = dynamic_cast <Span_req *> (m))
+           {
+             if (s->span_type_str_ == *p)
+               {
+                 return true;
+               }
+           }
+       }
+    }
+  return false;
+}
+  
 static char const *junk_interfaces[] = {
 #if 0
   "beam-interface",
index 5ba0d7f4f610193680282a14b2d995c5f46b0347..b21a4d5f43cd45b0e87edcc777394120cda8c7d8 100644 (file)
@@ -181,7 +181,6 @@ GraceContext=\translator {
 
 ThreadContext = \translator{
        \type Engraver_group_engraver;
-       %%\consists "A2_devnull_engraver";
        \consists "Thread_devnull_engraver";
        \consists "Note_heads_engraver";
        \consists "Output_property_engraver";   
index 205b71f658b9596d55889d85c699a9b720de2e12..584f3fd32b4749c17b80396cdf6df27d7f9df1a9 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.86
-Entered-date: 13SEP00
+Version: 1.3.87
+Entered-date: 18SEP00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.86.tar.gz 
+       1000k lilypond-1.3.87.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.86.tar.gz 
+       1000k lilypond-1.3.87.tar.gz 
 Copying-policy: GPL
 End
index de47e9b123e99aec33630081a132834a44e3005a..a087e0f6951919adf6f799351f24104a76b77506 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.86
+Version: 1.3.87
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.86.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.87.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # Icon: lilypond-icon.gif
index 7f011a363a7a8f7d59e70d8d62344b045761248d..ab28f5de689dd7caf56b7eae550fee4d0798cfa3 100644 (file)
@@ -13,21 +13,24 @@ copyright =  "public domain";
 \include "violoncello.ly"
 \include "contrabasso.ly"
 
-bassiGroup = \context PianoStaff = bassi_group <
+bassiGroup = \context PianoStaff = bassi_group \notes <
+        %\global
        \context StaffCombineStaff=one {
                \clef "bass"; 
+               \key es \major;
                \skip 1*314; 
                \bar "|."; 
        }
        \context StaffCombineStaff=two {
                \clef "bass"; 
+               \key es \major;
                \skip 1*314; 
                \bar "|."; 
        }
 
        \context StaffCombineStaff=one \partcombine StaffCombineStaff
-               \context StaffCombineThread=one \violoncello
-               \context StaffCombineThread=two \contrabasso
+               \context StaffCombineVoice=one \violoncello
+               \context StaffCombineVoice=two \contrabasso
 >
 
 \score{
index 8b6cad3d3a50b379056c23eb9004733ae9acb05a..735770136d7110166e71d98e69e7b631b440d878 100644 (file)
@@ -23,7 +23,7 @@ clarinettiStaff = \context Staff = clarinetti <
        \property Staff.transposing = #-2
        \time 4/4;
        \notes \key f \major;
-       \skip 1*341; \bar "|.";
+       \skip 1*314; \bar "|.";
        \context Voice=one \partcombine Voice
                \context Thread=one \clarinettoI
                \context Thread=two  \clarinettoII
index 1c75a4e0449826cd2ebff747e78deb486a378e48..1e8f4c1a2493f7deadce7694c0d22472d8a4f603 100644 (file)
@@ -10,15 +10,60 @@ copyright =  "public domain";
 \version "1.3.59";
 
 contrabasso = \notes \relative c {
-%      \translator Staff=violoncello
-       \skip 1*21;
-%      \translator Staff=contrabasso
-       bes4\p r4 r2 |
+       % copied 21 from cello
+       c1\ff ~ |
+       c |
+       f,4-. r r2 |
+       r1 |
+       c'1\ff ~ |
+       c |
+       f,4-. r r2 |
+       \property Staff.instr = #"Vc.\nCb."
+       r1 |
+       c'1\ff ~ |
+       c |
+       fis,4-. r r2 |
+       r1 |
+       g4-. r r2 |
+       g4-. r r2 |
+       c4\p r4 r2 |
+       c4 r4 r2 |
+       c4 r4 r2 |
+       r1 |
+       \property Voice.crescendoText = "cresc."
+       \property Voice.crescendoSpanner = "dashed-line"
+       c'4.\< c8 bes4. bes8 |
+
+       %20
+       as4. as8 \!g4\f r4 |
+       R1|
+
+       bes,4\p r4 r2 |
        bes4   r4 r2 |
        bes4   r4 r2 |
        %25
        R1 |
-       \skip 1*14;
+
+       % copied 14 from cello
+
+       \property Voice.crescendoText = "cresc."
+       \property Voice.crescendoSpanner = "dashed-line"
+       bes'4.\< bes8 as4. as8 |
+       g4 \!g4-.\f r2 |
+       R1
+       as4.\p as8 g4. g8 |
+       f2.-"cresc" g4 |
+       f2. g4 |
+       f4. g8 f4. g8 |
+       f4. g8 f4. g8 |
+       as1\ff ~ |
+       %35
+       as4(g f)es|
+       d4. r8 c4. r8 |
+       b4. r8 c4. r8 |
+       bes4. r8 as4. r8 |
+       g4. r8 f4. r8 |
+       %40
        fis2\sf r |
        fis2\sf r |
        f!2\sf r |
@@ -67,7 +112,10 @@ contrabasso = \notes \relative c {
        % )<b1\sf\> { s2 s4 \!s8}> |
        \!)b1\sf |
        %75
-       \skip 1*3; |
+       % copied 3 from cello
+       c4\p r d r |
+       es r d r |
+       c r cis r |
        d4\pp r d r |
        d r d r |
        %80
@@ -76,36 +124,76 @@ contrabasso = \notes \relative c {
        d r d\< r |
        d r d r |
        d r d r |
-       d r d \!r |
-       \skip 1*8; |
+       d r d r |
+       % copied 8 from cello
+       \!c'2.\ff()bes4 |
+       %85
+       a(g a)g|
+       c2.()bes4 |
+       a(g a)g|
+       f!2.()es4 |
+       d(c d)c|
+       %90
+       f2.()es4 |
+       d(c d)c|
        c4 r r2 |
        c4 r r2 |
        c4 r r2 |
        %95
        c4 r r2 |
-       \skip 1*6; |
-       g4\p r r2 |
+       % copied 6 from cello |
+       c4. c'8 c,4. c'8 |
+       b,4. b'8 bes,4. bes'8 |
+       as,4. as'8 g,4. g'8 |
+       fis,4. fis'8 es4. es8 |
+       %100
+       d4 r8 d es4 r8 es |
+       c4 r8 c d4 r8 d |
+       g,4\p r r2 |
        r2 r4 r8 fis\f |
        %105
        g4 r r2 |
        r2 r4 r8 fis\f |
        g4 r r2 |
        R1*3 |
-       % urg, aargh burp: skip 'same as cello' part
-       \skip 1*8; |
-
+       % copied 8 from cello
+       %110
+       [g'8:8 bes d es][f, a cis d] |
+       [es,8: g: b: c!:][d,: f: a: bes:] |
+       [c,: es: g: a:][cis,: e: g: bes:] |
+       [d,: g: bes: d:][d,: fis: a: d:] |
+       g,,2 ~ g4. g8 |
+       %115
+       g2 ~ g4. g8 |
+       g4. g8 g4 r8 g |
+       g4. g8 g4 r8 g |
        g4\p r r2 |
-       
        % urg, this is *rest*, not skip: 
        % need own staff for rests, mustn't collapse to one cello staff!
        %120 - 1
        R1*21 |
-
-       % play with cello
-       \skip 1*4; |
-       f'4\p r r2 |
+       % copied 4 frorm cello
+       [des'8\f f a bes][c, es g as]|
+       [bes,8:8 des: f: ges:][as,: c: e: f:]|
+       [g,: bes: c: des:][f,: bes: c: des:]|
+       [e,: g: bes: des:][c: e: g: c:]|
+       f,4\p r r2 |
        R1*3 |
-       \skip 1*10; |
+       % copied 10 from cello|
+       [f8:\ff as: c: des:][es,: g: b: c:]|
+       [des,: f: a: bes:][c,: es: g: as:]|
+       %150
+       % r[des,16 des][e e g g]r8[c,16 c][e e f f]|
+       [bes, des e g][as, c e f]|
+       % r8[des16 des][f f g g][c, c e e][g g c c]|
+       [bes, des f g][c, e g c]|
+       f,1\ff ~ |
+       f |
+       bes,4-. r r2
+       %155
+       R1 |
+       f'1\ff ~ |
+       f |
        b,2\sf r |
        b2\sf r |
        R1*3 |
@@ -158,21 +246,144 @@ contrabasso = \notes \relative c {
        %200
        )g1 |
        f |
-       \skip 1*18; |
+       % copied 18 from cello
+       [f8(g f g][f g f)g] |
+       es!4\fp r e r |
+       f r g r |
+       
+       %205
+       as r g r |
+       f r fis r |
+       g r g r |
+       g r g r |
+       \property Voice.crescendoText = "cresc."
+       \property Voice.crescendoSpanner = "dashed-line"
+       g r g\< r |
+       
+       %210
+       g r g r |
+       g r g r |
+       g r g r |
+       \!f2.\ff()es4 |
+       d( c d )c |
+
+       %215
+       f2.\ff()es4 |
+       d( c d )c |
+       bes2.\ff()as4 |
+       g( f g )f |
+       bes2.\ff()as4 |
 
        %220
        f'4 r r2 |
        f'4 r r2 |
        f4 r r2 |
        f4 r r2 |
-       \skip 1*6; |
+       % copied 6 from cello |
+       f4. f'8 f,4. f'8 |
+       e,4. e'8 es,4. es'8 |
+       d,4. d'8 c,4. c'8 |
+       b,4. b'8 as,4. as'8 |
+       g,4 r8 g as4 r8 as |
+
+       %230
+       f4 r8 f g4 r8 g |
        c,4\p r r2 |
        r2 r4 r8 b\f |
        c4 r r2 |
        r2 r4 r8 b\f |
+       %235
        c4 r r2 |
        R1*3 |
-       \skip 1*59; |
+
+       %copied 59 from cello
+       [c,8\f e g as][bes, d fis g]|
+
+       %240
+       [as, c e f!][g, bes d es]|
+       f4 r r2 |
+       R1*3 |
+       c4\p r r r8 c(|
+
+       %245
+       )f4 r r r8 f(|
+       )e4 r r r8 e(|
+       )b4 r r r8 b(|
+       )c4 r r r8 c(|
+       )f4 r r r8 f(|
+
+       %250
+       )es4 r r r8 es(|
+       )b4 r r r8 b(|
+       \property Voice.crescendoText = "cresc."
+       \property Voice.crescendoSpanner = "dashed-line"
+       )c4\< r r r8 c(|
+       )f4 r r r8 f,(|
+       )es1 |
+       
+       %255
+       \!ges\f |
+       f\p |
+       as\f |
+       g!\p |
+       bes\f |
+
+       %260
+       \property Voice.crescendoText = "cresc."
+       \property Voice.crescendoSpanner = "dashed-line"
+       as4.\p\< as'8 g4. g8 |
+       f4. f8 es4. es8 |
+       as4. as8 g4. g8 |
+       f4. f8 es4. es8 |
+       \!f,4.\ff f'8 f2\sf |
+       
+       %265
+       f,4. f'8 f2\sf |
+       g,4. g'8 g2\sf |
+       g,4. g'8 g2\sf |
+       as,4. as'8 as2\sf |
+       b,4. b'8 b2\sf |
+       
+       %270
+       [c,8-"sempre"\ff b c d][es\ff d es c]|
+       [b c d c][b c b g]|
+       [c8 b c d][es d es c]|
+       [b c d c][b c b g]|
+       [c b c g][c b c g]|
+
+       %275
+       [c b c g][c b c g]|
+       c1 ~ |
+       c |
+       f4-. r r2 |
+       R1 |
+
+       %280
+       c1 ~ |
+       c |
+       f4-. r r2 |
+       R1 |
+       c1 ~ |
+
+       %285
+       c |
+       fis4-. f-. r2 |
+       R1|
+       es4-. e-. r2 |
+       f,4-. g-. r2 |
+
+       %290
+       \property Voice.decrescendoText = "dim."
+       \property Voice.decrescendoSpanner = "dashed-line"
+       as4\> r b r |
+       R1 |
+       \!c4\p r r2|
+       R1 |
+       g4-"pizz." r r2 |
+       
+       %295
+       R1 |
+       c4 r r2 |
        r2 r4 f, |
        c' r r2 |
        r2 r4 f, |
index 9d33209b23b0b54fd18df07569e497abcc87441f..08cc643ca32eef9a7e2b19554cab39d8e16f710f 100644 (file)
@@ -1,5 +1,5 @@
 \paper{
-       \paper_sixteen
+
        textheight = 295.0\mm;
        linewidth = 180.0\mm;
 
@@ -11,8 +11,6 @@
                \ThreadContext
                \name "VoiceCombineThread";
                \consists "Rest_engraver";
-               \remove "Thread_devnull_engraver";
-               \consists "A2_devnull_engraver";
        }
        \translator{
                \VoiceContext
@@ -21,8 +19,6 @@
                soloIIText = #"II."
                \remove "Rest_engraver";
                \accepts "VoiceCombineThread";
-               \consists "A2_devnull_engraver";
-               \remove "Voice_devnull_engraver";
        }
        \translator{
                \HaraKiriStaffContext
        \translator{
                \ThreadContext
                \name "StaffCombineThread";
-               \remove "Thread_devnull_engraver";
-%%             \consists "A2_devnull_engraver";
        }
        \translator{
                \VoiceContext
                \name "StaffCombineVoice";
                \accepts "StaffCombineThread";
-
-               \remove "Rest_engraver";
-               \remove "Dot_column_engraver";
-               \remove "Stem_engraver";
-               \remove "Beam_engraver";
-               \remove "Auto_beam_engraver";
-               %\include "auto-beam-settings.ly";
-
-               \remove "Chord_tremolo_engraver";
-               \remove "Melisma_engraver";
-               \remove "Text_engraver";
-               \remove "A2_engraver";
-               \remove "Voice_devnull_engraver";
-
-               \remove "Piano_pedal_engraver";
-               \remove "Script_engraver";
-               \remove "Script_column_engraver";
-               \remove "Rhythmic_column_engraver";
-               \remove "Slur_engraver";
-               \remove "Tie_engraver";
-
-               \remove "Voice_devnull_engraver";
-%%             \consists "Thread_devnull_engraver";
-               \consists "A2_devnull_engraver";
+               \consists "Thread_devnull_engraver";
        }
        \translator {
                \HaraKiriStaffContext
                \name "StaffCombineStaff";
                \accepts "StaffCombineVoice";
 
-               \consists "Rest_engraver";
-               \consists "Dot_column_engraver";
-               \consists "Stem_engraver";
-               \consists "Beam_engraver";
-               \consists "Auto_beam_engraver";
-               \include "auto-beam-settings.ly";
-
-               \consists "Chord_tremolo_engraver";
-               \consists "Melisma_engraver";
-               \consists "Text_engraver";
-               \consists "A2_engraver";
-%%             \consists "Voice_devnull_engraver";
-%%             \consists "A2_devnull_engraver";
-
-               soloADue = ##f
-
-               \consists "Piano_pedal_engraver";
-               \consists "Script_engraver";
-               \consists "Script_column_engraver";
-               \consists "Rhythmic_column_engraver";
-               \consists "Slur_engraver";
-               \consists "Tie_engraver";
+               soloADue = ##t
+               soloText = #""
+               soloIIText = #""
+               aDueText = #""
+               splitInterval = #'(1 . 0)
        }
        \translator {
                \StaffGroupContext
 
        \translator {
                %\ScoreContext
-               %\consists "Mark_engraver";
                \OrchestralScoreContext
                \accepts "VoiceCombineStaff";
                \accepts "StaffCombineStaff";
+               skipBars = ##t 
 
                barScriptPadding = #2.0 % dimension \pt
                markScriptPadding = #4.0
                %% URG: this changes dynamics too
                %%textStyle = #"italic"
                timeSignatureStyle = #"C"
-               instrumentScriptPadding = #55  %% urg, this is in pt
-               instrScriptPadding = #40 %% urg, this is in pt
+               instrumentScriptPadding = #60  %% urg, this is in pt
+               instrScriptPadding = #40 %% urg, this is in pt
                marginScriptHorizontalAlignment = #1
                maximumRestCount = #1
        }
index c23c88937a4cd08d8b54131ee29fd3e23d7e677b..b78365c2a89f8e8ecb1927b3c01e354c647f3452 100644 (file)
@@ -1,4 +1,4 @@
-\paper {
+\paper{
 
        textheight = 295.0\mm;
        linewidth = 180.0\mm;
@@ -11,8 +11,6 @@
                \ThreadContext
                \name "VoiceCombineThread";
                \consists "Rest_engraver";
-               \remove "Thread_devnull_engraver";
-               \consists "A2_devnull_engraver";
        }
        \translator{
                \VoiceContext
@@ -21,8 +19,6 @@
                soloIIText = #"II."
                \remove "Rest_engraver";
                \accepts "VoiceCombineThread";
-               \consists "A2_devnull_engraver";
-               \remove "Voice_devnull_engraver";
        }
        \translator{
                \HaraKiriStaffContext
        \translator{
                \ThreadContext
                \name "StaffCombineThread";
-               \remove "Thread_devnull_engraver";
-%%             \consists "A2_devnull_engraver";
        }
        \translator{
                \VoiceContext
                \name "StaffCombineVoice";
                \accepts "StaffCombineThread";
-
-               \remove "Rest_engraver";
-               \remove "Dot_column_engraver";
-               \remove "Stem_engraver";
-               \remove "Beam_engraver";
-               \remove "Auto_beam_engraver";
-               %\include "auto-beam-settings.ly";
-
-               \remove "Chord_tremolo_engraver";
-               \remove "Melisma_engraver";
-               \remove "Text_engraver";
-               \remove "A2_engraver";
-               \remove "Voice_devnull_engraver";
-
-               \remove "Piano_pedal_engraver";
-               \remove "Script_engraver";
-               \remove "Script_column_engraver";
-               \remove "Rhythmic_column_engraver";
-               \remove "Slur_engraver";
-               \remove "Tie_engraver";
-
-               \remove "Voice_devnull_engraver";
-%%             \consists "Thread_devnull_engraver";
-               \consists "A2_devnull_engraver";
+               \consists "Thread_devnull_engraver";
        }
        \translator {
                \HaraKiriStaffContext
                \name "StaffCombineStaff";
                \accepts "StaffCombineVoice";
 
-               \consists "Rest_engraver";
-               \consists "Dot_column_engraver";
-               \consists "Stem_engraver";
-               \consists "Beam_engraver";
-               \consists "Auto_beam_engraver";
-               \include "auto-beam-settings.ly";
-
-               \consists "Chord_tremolo_engraver";
-               \consists "Melisma_engraver";
-               \consists "Text_engraver";
-               \consists "A2_engraver";
-%%             \consists "Voice_devnull_engraver";
-%%             \consists "A2_devnull_engraver";
-
-               soloADue = ##f
-
-               \consists "Piano_pedal_engraver";
-               \consists "Script_engraver";
-               \consists "Script_column_engraver";
-               \consists "Rhythmic_column_engraver";
-               \consists "Slur_engraver";
-               \consists "Tie_engraver";
+               soloADue = ##t
+               soloText = #""
+               soloIIText = #""
+               aDueText = #""
+               splitInterval = #'(1 . 0)
        }
        \translator {
                \StaffGroupContext
 
        \translator {
                \ScoreContext
+               %\OrchestralScoreContext
                \accepts "VoiceCombineStaff";
                \accepts "StaffCombineStaff";
                skipBars = ##t 
                maximumRestCount = #1
        }
 }
-
index da6d84ab9a2af99d0e5a0c0e3a56b530a3103242..f9f5401a5c40cf0665d0ea95ca78e31a01c8637e 100644 (file)
@@ -6,6 +6,7 @@
 
        \translator {
                \ScoreContext
+               %\OrchestralScoreContext
                skipBars = ##t 
 
                barScriptPadding = #2.0 % dimension \pt
index 05aebee9006abaaf5ce16708f432f3484fd6a855..ea8f927ad3aefe468d6b9b473eb49b7d8ac5af9b 100644 (file)
@@ -51,38 +51,42 @@ violiniGroup = \context GrandStaff = violini_group <
        \violinoIIStaff
 >
 
-violiGroup = \context PianoStaff = violi_group <
+violiGroup = \context PianoStaff = violi_group \notes <
        \context StaffCombineStaff=one {
                \clef "alto"; 
+               \key es \major;
                \skip 1*314; 
                \bar "|."; 
        }
        \context StaffCombineStaff=two {
                \clef "alto"; 
+               \key es \major;
                \skip 1*314; 
                \bar "|."; 
        }
 
        \context StaffCombineStaff=one \partcombine StaffCombineStaff
-               \context StaffCombineThread=one \violaI
-               \context StaffCombineThread=two \violaII
+               \context StaffCombineVoice=one \violaI
+               \context StaffCombineVoice=two \violaII
 >
 
-bassiGroup = \context PianoStaff = bassi_group <
+bassiGroup = \context PianoStaff = bassi_group \notes <
        \context StaffCombineStaff=one {
                \clef "bass"; 
+               \key es \major;
                \skip 1*314; 
                \bar "|."; 
        }
        \context StaffCombineStaff=two {
                \clef "bass"; 
+               \key es \major;
                \skip 1*314; 
                \bar "|."; 
        }
 
        \context StaffCombineStaff=one \partcombine StaffCombineStaff
-               \context StaffCombineThread=one \violoncello
-               \context StaffCombineThread=two \contrabasso
+               \context StaffCombineVoice=one \violoncello
+               \context StaffCombineVoice=two \contrabasso
 >
 
 
index 13c376c1068b45eb361677da377d3c82d140b3cb..6e241a7ab3fd3b20c7e3b8fe8ce390d4767b0a48 100644 (file)
@@ -22,7 +22,7 @@ corniStaff = \context Staff = corni <
        %\property Staff.transposing = "es"
        \property Staff.transposing = #3
        \time 4/4;
-       \skip 1*341; \bar "|.";
+       \skip 1*314; \bar "|.";
        \context Voice=one \partcombine Voice
                \context Thread=one \cornoI
                \context Thread=two \cornoII
index ae9ac83b2baa1b3805a92fc777559e0c878509e4..ffb79d3d959d9db9e1e4ef093f6387389e3ee11d 100644 (file)
@@ -13,21 +13,23 @@ copyright =  "public domain";
 \include "viola-1.ly"
 \include "viola-2.ly"
 
-violiGroup = \context PianoStaff = violi_group <
+violiGroup = \context PianoStaff = violi_group \notes <
        \context StaffCombineStaff=one {
                \clef "alto"; 
+               \key es \major;
                \skip 1*314; 
                \bar "|."; 
        }
        \context StaffCombineStaff=two {
                \clef "alto"; 
+               \key es \major;
                \skip 1*314; 
                \bar "|."; 
        }
 
        \context StaffCombineStaff=one \partcombine StaffCombineStaff
-               \context StaffCombineThread=one \violaI
-               \context StaffCombineThread=two \violaII
+               \context StaffCombineVoice=one \violaI
+               \context StaffCombineVoice=two \violaII
 >
 
 \score{
index 3e5a3bcfc7d240e10482718a7c9a9b2e6cfa9998..1a07ac60e402c03b8a9d1167c50d90d12e4f5c55 100644 (file)
@@ -128,6 +128,7 @@ violoncello = \notes \relative c {
        r4 r8 d d4. d8 |
        r4 r8 d d4. d8 |
        \!c'2.\ff()bes4 |
+       %85
        a(g a)g|
        c2.()bes4 |
        a(g a)g|
index 7258319846b8798d24fe051df35b26e0fc1a5cd3..4f64c43cc5ae07481ea72ea6f839f47e0b3b1a3e 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: 2000-07-24 21:55+0200\n"
+"POT-Creation-Date: 2000-09-17 12:01+0200\n"
 "PO-Revision-Date: 1999-09-18 01:30+0200\n"
 "Last-Translator: Erwin Dieterich <bamse@gmx.de>\n"
 "Language-Team: LANGUAGE <de@li.org>\n"
@@ -64,7 +64,7 @@ msgid "can't map file"
 msgstr "Kann die Datei nicht mappen"
 
 #: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:111
-#: paper-stream.cc:25 scores.cc:37 simple-file-storage.cc:44 text-stream.cc:22
+#: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:22
 #, c-format
 msgid "can't open file: `%s'"
 msgstr "Kann die Datei %s nicht öffnen"
@@ -102,59 +102,60 @@ msgstr "Ich kann das Zeichen `%s' nicht finden"
 msgid "Error parsing AFM file"
 msgstr ""
 
-#: all-font-metrics.cc:149 lookup.cc:80
+#: all-font-metrics.cc:151 lookup.cc:80
 #, c-format
 msgid "can't find font: `%s'"
 msgstr "Kann Schrift `%s' nicht finden"
 
-#: all-font-metrics.cc:150
+#: all-font-metrics.cc:152
 #, fuzzy
 msgid "Loading default font"
 msgstr "Kann die Schrift %s nicht finden, lade die Standardschrift."
 
-#: all-font-metrics.cc:167
+#: all-font-metrics.cc:169
 #, fuzzy, c-format
 msgid "can't find default font: `%s'"
 msgstr "Kann Schrift `%s' nicht finden"
 
-#: all-font-metrics.cc:168 includable-lexer.cc:50 lookup.cc:81 scores.cc:108
+#: all-font-metrics.cc:170 includable-lexer.cc:50 lookup.cc:81 scores.cc:109
 #, c-format
 msgid "(search path: `%s')"
 msgstr "(Suchpfad: `%s')"
 
-#: all-font-metrics.cc:169
+#: all-font-metrics.cc:171
 msgid "Giving up"
 msgstr ""
 
 #: auto-change-iterator.cc:43 change-iterator.cc:60
+#: part-combine-music-iterator.cc:85
 msgid "Can't switch translators, I'm there already"
 msgstr ""
 
-#: beam-engraver.cc:75 beam-engraver.cc:91
+#: beam-engraver.cc:76 beam-engraver.cc:109
 #, fuzzy
 msgid "can't find start of beam"
 msgstr "Kann nicht beide Enden von %s finden"
 
-#: beam-engraver.cc:120
+#: beam-engraver.cc:138
 #, fuzzy
 msgid "already have a beam"
 msgstr "Habe schon einen Balken"
 
-#: beam-engraver.cc:177
+#: beam-engraver.cc:202
 #, fuzzy
 msgid "unterminated beam"
 msgstr "Unbeendeter Bindestrich"
 
-#: beam-engraver.cc:210 chord-tremolo-engraver.cc:172
+#: beam-engraver.cc:240 chord-tremolo-engraver.cc:176
 #, fuzzy
 msgid "stem must have Rhythmic structure"
 msgstr "Ein Notenhals muss rhythmische Struktur haben."
 
-#: beam-engraver.cc:221
+#: beam-engraver.cc:251
 msgid "stem doesn't fit in beam"
 msgstr "Notenhals passt nicht in den Balken"
 
-#: beam-engraver.cc:222
+#: beam-engraver.cc:252
 msgid "beam was started here"
 msgstr "Der Balken bagann hier"
 
@@ -163,7 +164,7 @@ msgstr "Der Balken bagann hier"
 msgid "beam has less than two stems"
 msgstr "Balken mit weniger als zwei Hälsen"
 
-#: beam.cc:510
+#: beam.cc:511
 msgid "weird beam vertical offset"
 msgstr ""
 
@@ -201,17 +202,17 @@ msgstr "Unbeendeter Bindestrich"
 msgid "no one to print a tremolos"
 msgstr "Keiner darf eine Wiederholungsklammer drucken"
 
-#: chord.cc:152
+#: chord.cc:162
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr "Unerlaubte Subtraktion: nicht Teil eines Akkords: %s"
 
-#: chord.cc:376
+#: chord.cc:386
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr "Unerlaubter Baßton: gehört nicht zum Akkord: %s"
 
-#: clef-engraver.cc:167
+#: clef-engraver.cc:165
 #, fuzzy
 msgid "unknown clef type"
 msgstr "Unbekannter Notenschlüssel"
@@ -250,22 +251,22 @@ msgstr "Kann die Speicher
 msgid "NaN"
 msgstr "NaN"
 
-#: dynamic-engraver.cc:184 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:192 span-dynamic-performer.cc:87
 #, fuzzy
 msgid "can't find start of (de)crescendo"
 msgstr "Ich kann kein (De)crescendo bis zum Ende finden"
 
-#: dynamic-engraver.cc:203
+#: dynamic-engraver.cc:213
 #, fuzzy
 msgid "already have a crescendo"
 msgstr "Habe schon einen Balken"
 
-#: dynamic-engraver.cc:204
+#: dynamic-engraver.cc:214
 #, fuzzy
 msgid "already have a decrescendo"
 msgstr "Habe schon einen Balken"
 
-#: dynamic-engraver.cc:289
+#: dynamic-engraver.cc:303
 #, fuzzy
 msgid "unterminated (de)crescendo"
 msgstr "Nichtbeendetes Crescendo"
@@ -312,12 +313,12 @@ msgid "wrong identifier type, expected: `%s'"
 msgstr "Falscher Typ von Identifier: "
 
 #: includable-lexer.cc:48 lily-guile.cc:117 midi-score-parser.cc:24
-#: scores.cc:107 scores.cc:113
+#: scores.cc:108 scores.cc:114
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "Kann Datei `%s' nicht finden"
 
-#: key-engraver.cc:92 key-performer.cc:54
+#: key-engraver.cc:101 key-performer.cc:54
 msgid "FIXME: key change merge"
 msgstr ""
 
@@ -349,11 +350,15 @@ msgstr "Ich breche nieder"
 msgid "Non-matching braces in text `%s', adding braces"
 msgstr "Nicht zusammenpassende Klammern im Text `%s', füge Klammern hinzu."
 
-#: lyric-phrasing-engraver.cc:147
-msgid "lyrics found without matching notehead ... aligning on self"
+#: lyric-phrasing-engraver.cc:245
+msgid "lyrics found without any matching notehead"
+msgstr ""
+
+#: lyric-phrasing-engraver.cc:250
+msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:75 main.cc:92
+#: main.cc:75 main.cc:93
 msgid "enable debugging output"
 msgstr "Debugger Ausgabe an"
 
@@ -366,7 +371,7 @@ msgstr "EXT"
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr "Benutze das Ausgabeformat EXT"
 
-#: main.cc:77 main.cc:93
+#: main.cc:77 main.cc:94
 msgid "this help"
 msgstr "Diese Hilfe"
 
@@ -378,7 +383,7 @@ msgstr "DIR"
 msgid "add DIR to search path"
 msgstr "Hänge DIR an den Suchpfad an"
 
-#: main.cc:79 main.cc:96
+#: main.cc:79 main.cc:97
 msgid "FILE"
 msgstr "DATEI"
 
@@ -411,7 +416,7 @@ msgstr "Zeige alle Ver
 msgid "inhibit file output naming and exporting"
 msgstr "Unterdrücke die automatische Benennung von Ausgabedateien und Export"
 
-#: main.cc:85 main.cc:100
+#: main.cc:85 main.cc:102
 msgid "don't timestamp the output"
 msgstr "Keine Datumsangabe auf der Ausgabe"
 
@@ -419,7 +424,7 @@ msgstr "Keine Datumsangabe auf der Ausgabe"
 msgid "switch on experimental features"
 msgstr "Schalte experimentelle Möglichkeiten an"
 
-#: main.cc:87 main.cc:101
+#: main.cc:87 main.cc:103
 msgid "print version number"
 msgstr "Zeige die Versionsnummer"
 
@@ -428,21 +433,24 @@ msgstr "Zeige die Versionsnummer"
 msgid "verbose"
 msgstr "Sei geschwätzig"
 
-#: main.cc:89 main.cc:103
+#: main.cc:89 main.cc:105
 msgid "show warranty and copyright"
 msgstr "Zeige Garantie und Urheberrechte"
 
-#: main.cc:105
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:107
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Benutzung: %s [OPTIONEN] ... [DATEI] ..."
 
-#: main.cc:107
+#: main.cc:109
 #, fuzzy
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "Setze Musik oder spiele MIDI von DATEI"
 
-#: main.cc:111
+#: main.cc:113
 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"
@@ -452,20 +460,20 @@ msgstr ""
 "Notenblätter erzeugen. Dazu verwendet es eine eigene Beschreibungssprache.\n"
 "lilyPond ist Teil des GNU-Projekts\n"
 
-#: main.cc:116 main.cc:117
+#: main.cc:118 main.cc:119
 msgid "Options:"
 msgstr "Optionen:"
 
-#: main.cc:121
+#: main.cc:123
 msgid "This binary was compiled with the following options:"
 msgstr "Diese Programm wurde mit den folgenden Optionen übersetzt:"
 
-#: main.cc:120 main.cc:140
+#: main.cc:122 main.cc:142
 #, fuzzy, c-format
 msgid "Report bugs to %s"
 msgstr "Melde Fehler an"
 
-#: main.cc:53 main.cc:148
+#: main.cc:54 main.cc:150
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -478,17 +486,17 @@ msgstr ""
 "einhalten. Wenn Sie das Programm mit `%s --warranty starten, bekommen\n"
 "Sie mehr Informationen.\n"
 
-#: main.cc:60 main.cc:155 main.cc:167
+#: main.cc:61 main.cc:157 main.cc:169
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Urheberrechte (Copyright) (c) %s bei"
 
 #. GNU GNU?
-#: main.cc:165
+#: main.cc:167
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr "GNU LilyPond -- Der Notensatz des GNU-Projekts"
 
-#: main.cc:69 main.cc:173
+#: main.cc:70 main.cc:175
 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"
@@ -541,11 +549,7 @@ msgstr "unsinnige Tonh
 msgid "Error syncing file (disk full?)"
 msgstr "Fehler beim Abspeichern der Datei (Platte voll?)"
 
-#: music-output-def.cc:51
-msgid "Interpretation context with empty type"
-msgstr "Interpretationskontext mit leerer Typangabe"
-
-#: music-output-def.cc:78
+#: music-output-def.cc:71
 #, fuzzy, c-format
 msgid "can't find `%s' context"
 msgstr "Kann Partiturkontext nicht finden"
@@ -555,21 +559,21 @@ msgstr "Kann Partiturkontext nicht finden"
 msgid "Transposition by %s makes accidental larger than two"
 msgstr "Transponieren um %s macht Vorzecihen größer als zwei"
 
-#: my-lily-lexer.cc:118
+#: my-lily-lexer.cc:124
 #, fuzzy, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "name ist ein Schlüsselbegriff (keyword) (`%s')"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "error at EOF: %s"
 msgstr "Fehler am Dateiende(EOF): %s"
 
-#: midi-score-parser.cc:94 my-lily-parser.cc:55
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
 msgid "Parsing..."
 msgstr "Verarbeite..."
 
-#: my-lily-parser.cc:63
+#: my-lily-parser.cc:55
 #, fuzzy
 msgid "Braces don't match"
 msgstr "Klammern passen nicht zusammen"
@@ -592,6 +596,22 @@ msgstr "Verarbeite Element vor..."
 msgid "Outputting Score, defined at: "
 msgstr "Gebe Partitur aus, definiert bei: "
 
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:104
+#, c-format
+msgid "I'm one myself: `%s'"
+msgstr ""
+
+#: part-combine-music-iterator.cc:107
+#, c-format
+msgid "none of these in my family: `%s'"
+msgstr ""
+
 #: performance.cc:50
 msgid "Track ... "
 msgstr "Stück ... "
@@ -621,30 +641,21 @@ msgstr "MIDI-Ausgabe nach %s..."
 msgid "can't find start of piano pedal: %s"
 msgstr "Kann keine kürzeste Note bei %s finden"
 
-#: property-engraver.cc:128
+#: property-engraver.cc:131
 #, fuzzy
 msgid "Wrong type for property"
 msgstr "Falsche Type für Besitz-Wert"
 
-#: repeat-engraver.cc:253
-msgid "No bar engraver found.  Ignoring repeats."
-msgstr ""
-
-#: request-chord-iterator.cc:72
+#: request-chord-iterator.cc:93
 #, fuzzy, c-format
 msgid "Junking request: `%s'"
 msgstr "Uralt-Bitte: `%s'"
 
-#: request-chord-iterator.cc:75
+#: request-chord-iterator.cc:96
 #, c-format
 msgid "Huh?  Not a Request: `%s'"
 msgstr "Wie? Keine Anforderung: `%s'"
 
-#: request-iterator.cc:20
-#, fuzzy, c-format
-msgid "Junking music: `%s'"
-msgstr "Uralt-Bitte: `%s'"
-
 #: rest-collision.cc:159
 #, fuzzy
 msgid "too many colliding rests"
@@ -655,7 +666,7 @@ msgstr "Zu viele kollidierende Pausen."
 msgid "too many notes for rest collision"
 msgstr "Zu viele Noten für kollidierende Pausen."
 
-#: score-engraver.cc:151
+#: score-engraver.cc:149
 #, fuzzy, c-format
 msgid "unbound spanner `%s'"
 msgstr "Unbeschränkter Abstand `%s'"
@@ -675,60 +686,61 @@ msgstr "Ich brauche Noten in einer Partitur"
 msgid "Errors found/*, not processing score*/"
 msgstr "Habe Fehler gefunden, /* die Partitur wird nicht verarbeitet */"
 
-#: score.cc:100
+#: score.cc:101
 #, fuzzy, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr "verstrichene Zeit %.2f Sekunden"
 
 #: scores.cc:34
 #, fuzzy, c-format
-msgid "Writing dependency file: `%s'...\n"
+msgid "Writing dependency file: `%s'..."
 msgstr "Schreibe Datei mit Abhängigkeiten: `%s'..."
 
-#: scores.cc:78
+#: scores.cc:79
 #, fuzzy
 msgid "Score contains errors; will not process it"
 msgstr "Partitur enthält Fehler; ich werde sie nicht weiterverarbeiten"
 
-#: scores.cc:123
-#, c-format
-msgid "Now processing: `%s'\n"
-msgstr ""
+#: scores.cc:124
+#, fuzzy, c-format
+msgid "Now processing: `%s'"
+msgstr "Unbekannte Sonder-Zeichenkette"
 
-#: script-engraver.cc:65
+#: script-engraver.cc:66
 #, fuzzy, c-format
 msgid "Don't know how to interpret articulation `%s'"
 msgstr "Ich weiß nicht, wie ich die Artikulation `%s' interpretieren soll\n"
 
 #. this shouldn't happen, but let's continue anyway.
-#: separation-item.cc:48
+#: separation-item.cc:47
 #, fuzzy
 msgid "Separation_item:  I've been drinking too much"
 msgstr "Single_malt_grouping_item: Ich saufe zu viel"
 
-#: sequential-music-iterator.cc:83
+#: sequential-music-iterator.cc:35
 msgid "Must stop before this music ends"
 msgstr ""
 
-#: slur-engraver.cc:82
+#: simple-music-iterator.cc:36
+#, fuzzy, c-format
+msgid "Junking music: `%s'"
+msgstr "Uralt-Bitte: `%s'"
+
+#: slur-engraver.cc:89
 msgid "unterminated slur"
 msgstr "Unbeendeter Bindebogen"
 
-#: slur-engraver.cc:98
-#, c-format
-msgid "can't find both ends of %s"
+#: slur-engraver.cc:104
+#, fuzzy
+msgid "can't find start of slur"
 msgstr "Kann nicht beide Enden von %s finden"
 
-#: slur-engraver.cc:98
-msgid "slur"
-msgstr "Bindebogen"
-
 #: slur.cc:48
 #, fuzzy
 msgid "Putting slur over rest.  Ignoring."
 msgstr "Setze Bindebogen über Pause. Wird ignoriert"
 
-#: slur.cc:122
+#: slur.cc:324
 msgid "Slur over rest?"
 msgstr "Bindebogen übe den Rest?"
 
@@ -771,17 +783,6 @@ msgstr "Einsamer Haltebogen"
 msgid "no one to print a tuplet start bracket"
 msgstr "Niemand schreibt eine mehrfahce Anfangsklammer"
 
-#: time-signature-engraver.cc:49
-#, fuzzy
-msgid "lost in time:"
-msgstr "Verloren in der Zeit"
-
-#: time-signature-engraver.cc:50 translator-group.cc:419
-#: translator-group.cc:428
-#, fuzzy, c-format
-msgid "can't find: `%s'"
-msgstr "Kann `%s' nicht finden"
-
 #: timing-translator.cc:36
 msgid "conflicting timing request"
 msgstr "Widersprechende Zeitangaben"
@@ -790,31 +791,41 @@ msgstr "Widersprechende Zeitangaben"
 msgid "This is the other timing request"
 msgstr ""
 
-#: timing-translator.cc:79
+#: timing-translator.cc:65
 #, fuzzy, c-format
 msgid "barcheck failed at: %s"
 msgstr "Überprüfung der Takte is fehlgeschlagen bei: %s"
 
-#: translator-ctors.cc:41
+#: translator-ctors.cc:40
 #, fuzzy, c-format
 msgid "unknown translator: `%s'"
 msgstr "unbekannter Übersetzer `%s'"
 
-#: translator-group.cc:82 translator-group.cc:95
+#: translator-def.cc:96
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-group.cc:86 translator-group.cc:101
+#: translator-def.cc:102
 #, fuzzy, c-format
 msgid "Already contains: `%s'"
 msgstr "Enthält schon ein `%s'"
 
-#: translator-group.cc:213
+#: translator-def.cc:103
+#, fuzzy, c-format
+msgid "Not adding translator: `%s'"
+msgstr "unbekannter Übersetzer `%s'"
+
+#: translator-def.cc:215
+#, fuzzy, c-format
+msgid "can't find: `%s'"
+msgstr "Kann `%s' nicht finden"
+
+#: translator-group.cc:142
 #, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr "Kann ein `%s', genannt `%s' weder finden noch erzeugen"
 
-#: translator-group.cc:325
+#: translator-group.cc:246
 #, fuzzy, c-format
 msgid "can't find or create: `%s'"
 msgstr "Kann ein `%s' weder finden noch erzeugen"
@@ -824,182 +835,207 @@ msgstr "Kann ein `%s' weder finden noch erzeugen"
 msgid "no one to print a volta bracket"
 msgstr "Niemand schreibt eine Volta-Klammer"
 
-#: parser.yy:59
+#: parser.yy:61
 #, c-format
 msgid "Oldest supported input version: %s"
 msgstr "Älteste noch unterstütze Version der Eingabe: %s"
 
-#: parser.yy:426
-msgid "Need a translator group for a context"
-msgstr "Ich brauche eine Übersetzer-Gruppe für den Kontext"
-
-#: parser.yy:441
+#: parser.yy:447
 msgid "Wrong type for property value"
 msgstr "Falsche Type für Besitz-Wert"
 
-#: parser.yy:626
+#: parser.yy:633
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:666
+#: parser.yy:673
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:671
+#: parser.yy:678
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:971
+#: parser.yy:1015
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:981
+#: parser.yy:1025
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1073
+#: parser.yy:1117
 #, c-format
 msgid "Expecting %d arguments"
 msgstr ""
 
-#: parser.yy:1089
+#: parser.yy:1133
 msgid "Must have 2 arguments for duration"
 msgstr ""
 
-#: parser.yy:1096 parser.yy:1104 parser.yy:1339
+#: parser.yy:1140 parser.yy:1148 parser.yy:1383
 #, fuzzy
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "Um Text zu verarbeiten, muß ich im Text-(Lyrics)-Modus sein"
 
-#: parser.yy:1245 parser.yy:1265
+#: parser.yy:1289 parser.yy:1309
 #, c-format
 msgid "not a duration: %d"
 msgstr "Keine Dauer: %d"
 
-#: parser.yy:1274
+#: parser.yy:1318
 #, fuzzy
 msgid "Have to be in Note mode for notes"
 msgstr "Für Noten muß ich im Noten-(Note)-Modus sein"
 
-#: parser.yy:1352
+#: parser.yy:1396
 #, fuzzy
 msgid "Have to be in Chord mode for chords"
 msgstr "Für Akkorde muß ich im Akkord-(Chord)-Modus sein"
 
-#: parser.yy:1513 parser.yy:1531
+#: parser.yy:1558 parser.yy:1576
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1517
+#: parser.yy:1562
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:158
+#: lexer.ll:159
 msgid "EOF found inside a comment"
 msgstr "Während eines Kommentar war die Datei zu Ende (EOF gefunden)"
 
-#: lexer.ll:172
+#: lexer.ll:173
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:196
+#: lexer.ll:197
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "Unbekannter Identifier: `%s'"
 
 #. backup rule
-#: lexer.ll:201
+#: lexer.ll:202
 #, fuzzy
 msgid "Missing end quote"
 msgstr "Endnote fehlt"
 
 #. backup rule
-#: lexer.ll:223 lexer.ll:227
+#: lexer.ll:224 lexer.ll:228
 msgid "white expected"
 msgstr "Erwarte Weiß"
 
-#: lexer.ll:235
+#: lexer.ll:236
 #, fuzzy
 msgid "Can't evaluate Scheme in safe mode"
 msgstr "Kann Scheme nicht interpretieren, wenn ich im sicheren Modus bin"
 
-#: lexer.ll:431
+#: lexer.ll:432
 #, c-format
 msgid "invalid character: `%c'"
 msgstr "Ungültiger Buchstabe `%c'"
 
-#: lexer.ll:508
+#: lexer.ll:512
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "Unbekannte Sonder-Zeichenkette"
 
-#: lexer.ll:594
+#: lexer.ll:598
 #, c-format
 msgid "incorrect mudela version: %s (%s, %s)"
 msgstr "Falsche Version von Mudela: (s /%s, %s)"
 
-#: lexer.ll:595
+#: lexer.ll:599
 msgid "Consider converting the input with the convert-mudela script"
 msgstr ""
 
-#: main.cc:91
+#: main.cc:92
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr "Schreibe genaue Dauer, z.B.: a4*385/384"
 
-#: main.cc:94
+#: main.cc:95
 msgid "ACC[:MINOR]"
 msgstr "ACC[:MOLL]"
 
-#: main.cc:94
+#: main.cc:95
 msgid "set key: ACC +sharps/-flats; :1 minor"
 msgstr "Setze Tonart: ACC +Kreuze/-Bes; :1 Moll"
 
-#: main.cc:95
+#: main.cc:96
 #, fuzzy
-msgid "don't output tuplets or double dots, smallest is 32"
+msgid "don't output tuplets, double dots or rests, smallest is 32"
 msgstr ""
 "Nimm an, dass keine -olen (Triolen, Quintolen etc.) oder Doppelpunkte \n"
 "vorliegen. Kleinste Teilung sind 32igstel"
 
-#: main.cc:96
+#: main.cc:97
 msgid "set FILE as default output"
 msgstr "Ausgabe standardmäßig in Datei FILE"
 
-#: main.cc:97
+#: main.cc:98
 msgid "don't output tuplets"
 msgstr ""
 
-#: main.cc:98
+#: main.cc:99
 msgid "be quiet"
 msgstr "Sei ruhig"
 
-#: main.cc:99
+#: main.cc:100
+msgid "don't output rests or skips"
+msgstr ""
+
+#: main.cc:101
 msgid "DUR"
 msgstr "DUR"
 
-#: main.cc:99
+#: main.cc:101
 #, fuzzy
 msgid "set smallest duration"
 msgstr "Setze kürzeste Dauer (?)"
 
-#: main.cc:102
+#: main.cc:104
 msgid "be verbose"
 msgstr "Sei geschwätzig"
 
-#: main.cc:104
+#: main.cc:106
 msgid "assume no double dotted notes"
 msgstr "Keine Noten mit Doppelpunkt"
 
-#: main.cc:111
+#: main.cc:113
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "Verwendung: %s [OPTIONEN] ... [DATEI]"
 
-#: main.cc:113
+#: main.cc:115
 #, fuzzy
 msgid "Translate MIDI-file to mudela"
 msgstr "Übersetze MIDI in mudela"
 
+#: main.cc:129
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr ""
+
+#: main.cc:131
+#, c-format
+msgid "no_rests: %d\n"
+msgstr ""
+
+#: main.cc:133
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr ""
+
+#: main.cc:135
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr ""
+
+#: main.cc:138
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr ""
+
 #: midi-parser.cc:64
 msgid "zero length string encountered"
 msgstr "Zeichenkette der Länge 0 gefunden"
@@ -1096,12 +1132,12 @@ msgstr "Quantifiziere Spalten..."
 msgid "Settling columns..."
 msgstr "Erledige Spalten..."
 
-#: mudela-staff.cc:178
+#: mudela-staff.cc:209
 #, fuzzy
 msgid "% MIDI copyright:"
 msgstr "% Midi Urheberrecht:"
 
-#: mudela-staff.cc:179
+#: mudela-staff.cc:210
 #, fuzzy
 msgid "% MIDI instrument:"
 msgstr "% Instrument:"
@@ -1125,6 +1161,22 @@ msgstr "% Automatisch generiert"
 msgid "% from input file: "
 msgstr "% aus Eingabedatei: "
 
+#~ msgid "Interpretation context with empty type"
+#~ msgstr "Interpretationskontext mit leerer Typangabe"
+
+#~ msgid "can't find both ends of %s"
+#~ msgstr "Kann nicht beide Enden von %s finden"
+
+#~ msgid "slur"
+#~ msgstr "Bindebogen"
+
+#, fuzzy
+#~ msgid "lost in time:"
+#~ msgstr "Verloren in der Zeit"
+
+#~ msgid "Need a translator group for a context"
+#~ msgstr "Ich brauche eine Übersetzer-Gruppe für den Kontext"
+
 #, fuzzy
 #~ msgid "No key name, assuming `C'"
 #~ msgstr "Keine Tonart: ich nehme `C' an"
index d8b6a122ce86689c938252139e9e6896b91a1edf..488e91445d642d5fb0e212ca69e95a73c6f0fb01 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 1.3.18\n"
-"POT-Creation-Date: 2000-07-24 21:55+0200\n"
+"POT-Creation-Date: 2000-09-17 12:01+0200\n"
 "PO-Revision-Date: 1999-12-28 00:32 +1\n"
 "Last-Translator: Laurent Martelli <laurent@linuxfan.com>\n"
 "Language-Team: \n"
@@ -64,7 +64,7 @@ msgid "can't map file"
 msgstr "impossible de mapper le fichier"
 
 #: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:111
-#: paper-stream.cc:25 scores.cc:37 simple-file-storage.cc:44 text-stream.cc:22
+#: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:22
 #, c-format
 msgid "can't open file: `%s'"
 msgstr "impossible d'ouvrir le fichier: `%s'"
@@ -102,59 +102,60 @@ msgstr "impossible de trouver le caract
 msgid "Error parsing AFM file"
 msgstr ""
 
-#: all-font-metrics.cc:149 lookup.cc:80
+#: all-font-metrics.cc:151 lookup.cc:80
 #, fuzzy, c-format
 msgid "can't find font: `%s'"
 msgstr "ne peut pas trouver le fichier: `%s'"
 
-#: all-font-metrics.cc:150
+#: all-font-metrics.cc:152
 #, fuzzy
 msgid "Loading default font"
 msgstr "Impossible de trouver la police `%s', chargement la police par défaut"
 
-#: all-font-metrics.cc:167
+#: all-font-metrics.cc:169
 #, fuzzy, c-format
 msgid "can't find default font: `%s'"
 msgstr "Impossible de trouver la fonte par défaut `%s', abandon."
 
-#: all-font-metrics.cc:168 includable-lexer.cc:50 lookup.cc:81 scores.cc:108
+#: all-font-metrics.cc:170 includable-lexer.cc:50 lookup.cc:81 scores.cc:109
 #, fuzzy, c-format
 msgid "(search path: `%s')"
 msgstr "chemin de recherche= %s"
 
-#: all-font-metrics.cc:169
+#: all-font-metrics.cc:171
 msgid "Giving up"
 msgstr ""
 
 #: auto-change-iterator.cc:43 change-iterator.cc:60
+#: part-combine-music-iterator.cc:85
 msgid "Can't switch translators, I'm there already"
 msgstr ""
 
-#: beam-engraver.cc:75 beam-engraver.cc:91
+#: beam-engraver.cc:76 beam-engraver.cc:109
 #, fuzzy
 msgid "can't find start of beam"
 msgstr "impossible de trouver le caractères numéro %d"
 
-#: beam-engraver.cc:120
+#: beam-engraver.cc:138
 #, fuzzy
 msgid "already have a beam"
 msgstr "Il y a déjà une barre"
 
-#: beam-engraver.cc:177
+#: beam-engraver.cc:202
 #, fuzzy
 msgid "unterminated beam"
 msgstr "Barre non terminée"
 
-#: beam-engraver.cc:210 chord-tremolo-engraver.cc:172
+#: beam-engraver.cc:240 chord-tremolo-engraver.cc:176
 #, fuzzy
 msgid "stem must have Rhythmic structure"
 msgstr "La tige doit avoir une structure rythmique."
 
-#: beam-engraver.cc:221
+#: beam-engraver.cc:251
 msgid "stem doesn't fit in beam"
 msgstr "la tige ne rentre pas dans la barre"
 
-#: beam-engraver.cc:222
+#: beam-engraver.cc:252
 msgid "beam was started here"
 msgstr "la barre a commencé ici"
 
@@ -163,7 +164,7 @@ msgstr "la barre a commenc
 msgid "beam has less than two stems"
 msgstr "barre avec moins de deux tiges"
 
-#: beam.cc:510
+#: beam.cc:511
 msgid "weird beam vertical offset"
 msgstr ""
 
@@ -199,17 +200,17 @@ msgstr ""
 msgid "no one to print a tremolos"
 msgstr ""
 
-#: chord.cc:152
+#: chord.cc:162
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr "soustraction invalide: ne fait pas partie de l'accord: %s"
 
-#: chord.cc:376
+#: chord.cc:386
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr "renversement invalide: ne fait pas partie de l'accord: %s"
 
-#: clef-engraver.cc:167
+#: clef-engraver.cc:165
 #, fuzzy
 msgid "unknown clef type"
 msgstr "type de clé inconnu"
@@ -246,22 +247,22 @@ msgstr "impossible de positionner mem-checking"
 msgid "NaN"
 msgstr ""
 
-#: dynamic-engraver.cc:184 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:192 span-dynamic-performer.cc:87
 #, fuzzy
 msgid "can't find start of (de)crescendo"
 msgstr "ne peut pas trouver un (de)crescendo à la fin"
 
-#: dynamic-engraver.cc:203
+#: dynamic-engraver.cc:213
 #, fuzzy
 msgid "already have a crescendo"
 msgstr "Il y a déjà une barre"
 
-#: dynamic-engraver.cc:204
+#: dynamic-engraver.cc:214
 #, fuzzy
 msgid "already have a decrescendo"
 msgstr "Il y a déjà une barre"
 
-#: dynamic-engraver.cc:289
+#: dynamic-engraver.cc:303
 #, fuzzy
 msgid "unterminated (de)crescendo"
 msgstr "crescendo non terminé"
@@ -305,12 +306,12 @@ msgid "wrong identifier type, expected: `%s'"
 msgstr "Mauvais type d'indentifiant: "
 
 #: includable-lexer.cc:48 lily-guile.cc:117 midi-score-parser.cc:24
-#: scores.cc:107 scores.cc:113
+#: scores.cc:108 scores.cc:114
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "ne peut pas trouver le fichier: `%s'"
 
-#: key-engraver.cc:92 key-performer.cc:54
+#: key-engraver.cc:101 key-performer.cc:54
 msgid "FIXME: key change merge"
 msgstr ""
 
@@ -342,11 +343,15 @@ msgstr "Annulation"
 msgid "Non-matching braces in text `%s', adding braces"
 msgstr ""
 
-#: lyric-phrasing-engraver.cc:147
-msgid "lyrics found without matching notehead ... aligning on self"
+#: lyric-phrasing-engraver.cc:245
+msgid "lyrics found without any matching notehead"
+msgstr ""
+
+#: lyric-phrasing-engraver.cc:250
+msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:75 main.cc:92
+#: main.cc:75 main.cc:93
 msgid "enable debugging output"
 msgstr ""
 
@@ -358,7 +363,7 @@ msgstr ""
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr ""
 
-#: main.cc:77 main.cc:93
+#: main.cc:77 main.cc:94
 msgid "this help"
 msgstr "cette aide"
 
@@ -371,7 +376,7 @@ msgstr "REP"
 msgid "add DIR to search path"
 msgstr "ajoute REP au chemin de recherche"
 
-#: main.cc:79 main.cc:96
+#: main.cc:79 main.cc:97
 msgid "FILE"
 msgstr "FICHIER"
 
@@ -405,7 +410,7 @@ msgstr ""
 msgid "inhibit file output naming and exporting"
 msgstr ""
 
-#: main.cc:85 main.cc:100
+#: main.cc:85 main.cc:102
 msgid "don't timestamp the output"
 msgstr ""
 
@@ -413,7 +418,7 @@ msgstr ""
 msgid "switch on experimental features"
 msgstr ""
 
-#: main.cc:87 main.cc:101
+#: main.cc:87 main.cc:103
 msgid "print version number"
 msgstr "afficher le numéro de version"
 
@@ -421,20 +426,23 @@ msgstr "afficher le num
 msgid "verbose"
 msgstr ""
 
-#: main.cc:89 main.cc:103
+#: main.cc:89 main.cc:105
 msgid "show warranty and copyright"
 msgstr ""
 
-#: main.cc:105
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:107
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Usage: %s [OPTION]... [FICHIER]..."
 
-#: main.cc:107
+#: main.cc:109
 msgid "Typeset music and or play MIDI from FILE"
 msgstr ""
 
-#: main.cc:111
+#: main.cc:113
 #, fuzzy
 msgid ""
 "LilyPond is a music typesetter.  It produces beautiful sheet music\n"
@@ -445,21 +453,21 @@ msgstr ""
 "paritions à partir de description de gaut niveau en entrée. Lilypond\n"
 "fait partie du projet GNU.\n"
 
-#: main.cc:116 main.cc:117
+#: main.cc:118 main.cc:119
 msgid "Options:"
 msgstr "Options: "
 
-#: main.cc:121
+#: main.cc:123
 #, fuzzy
 msgid "This binary was compiled with the following options:"
 msgstr "Cet exécutable a été compilé avec les options suivantes:"
 
-#: main.cc:120 main.cc:140
+#: main.cc:122 main.cc:142
 #, fuzzy, c-format
 msgid "Report bugs to %s"
 msgstr "Rapporter les bugs à"
 
-#: main.cc:53 main.cc:148
+#: main.cc:54 main.cc:150
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -467,17 +475,17 @@ msgid ""
 "certain conditions.  Invoke as `%s --warranty' for more information.\n"
 msgstr ""
 
-#: main.cc:60 main.cc:155 main.cc:167
+#: main.cc:61 main.cc:157 main.cc:169
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s par"
 
 #. GNU GNU?
-#: main.cc:165
+#: main.cc:167
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU"
 
-#: main.cc:69 main.cc:173
+#: main.cc:70 main.cc:175
 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"
@@ -517,11 +525,7 @@ msgstr ""
 msgid "Error syncing file (disk full?)"
 msgstr ")"
 
-#: music-output-def.cc:51
-msgid "Interpretation context with empty type"
-msgstr ""
-
-#: music-output-def.cc:78
+#: music-output-def.cc:71
 #, fuzzy, c-format
 msgid "can't find `%s' context"
 msgstr "ne peut pas trouver `%s'"
@@ -531,21 +535,21 @@ msgstr "ne peut pas trouver `%s'"
 msgid "Transposition by %s makes accidental larger than two"
 msgstr ""
 
-#: my-lily-lexer.cc:118
+#: my-lily-lexer.cc:124
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr ""
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "error at EOF: %s"
 msgstr ""
 
-#: midi-score-parser.cc:94 my-lily-parser.cc:55
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
 msgid "Parsing..."
 msgstr "Analyse..."
 
-#: my-lily-parser.cc:63
+#: my-lily-parser.cc:55
 msgid "Braces don't match"
 msgstr ""
 
@@ -566,6 +570,22 @@ msgstr ""
 msgid "Outputting Score, defined at: "
 msgstr ""
 
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:104
+#, c-format
+msgid "I'm one myself: `%s'"
+msgstr ""
+
+#: part-combine-music-iterator.cc:107
+#, c-format
+msgid "none of these in my family: `%s'"
+msgstr ""
+
 #: performance.cc:50
 #, fuzzy
 msgid "Track ... "
@@ -596,30 +616,21 @@ msgstr ""
 msgid "can't find start of piano pedal: %s"
 msgstr "ne peut pas trouver le fichier: `%s'"
 
-#: property-engraver.cc:128
+#: property-engraver.cc:131
 #, fuzzy
 msgid "Wrong type for property"
 msgstr "Mauvais type pour la valeur de la propriété"
 
-#: repeat-engraver.cc:253
-msgid "No bar engraver found.  Ignoring repeats."
-msgstr ""
-
-#: request-chord-iterator.cc:72
+#: request-chord-iterator.cc:93
 #, c-format
 msgid "Junking request: `%s'"
 msgstr ""
 
-#: request-chord-iterator.cc:75
+#: request-chord-iterator.cc:96
 #, c-format
 msgid "Huh?  Not a Request: `%s'"
 msgstr ""
 
-#: request-iterator.cc:20
-#, c-format
-msgid "Junking music: `%s'"
-msgstr ""
-
 #: rest-collision.cc:159
 msgid "too many colliding rests"
 msgstr ""
@@ -628,7 +639,7 @@ msgstr ""
 msgid "too many notes for rest collision"
 msgstr ""
 
-#: score-engraver.cc:151
+#: score-engraver.cc:149
 #, fuzzy, c-format
 msgid "unbound spanner `%s'"
 msgstr "traducteur inconnu `%s'"
@@ -646,57 +657,58 @@ msgstr ""
 msgid "Errors found/*, not processing score*/"
 msgstr ""
 
-#: score.cc:100
+#: score.cc:101
 #, fuzzy, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr "temps ecoulé: %.2f secondes"
 
 #: scores.cc:34
 #, fuzzy, c-format
-msgid "Writing dependency file: `%s'...\n"
+msgid "Writing dependency file: `%s'..."
 msgstr "impossible d'ouvrir le fichier: `%s'"
 
-#: scores.cc:78
+#: scores.cc:79
 msgid "Score contains errors; will not process it"
 msgstr ""
 
-#: scores.cc:123
-#, c-format
-msgid "Now processing: `%s'\n"
-msgstr ""
+#: scores.cc:124
+#, fuzzy, c-format
+msgid "Now processing: `%s'"
+msgstr "chaîne d'échappement inconnue: `\\%s'"
 
-#: script-engraver.cc:65
+#: script-engraver.cc:66
 #, c-format
 msgid "Don't know how to interpret articulation `%s'"
 msgstr ""
 
 #. this shouldn't happen, but let's continue anyway.
-#: separation-item.cc:48
+#: separation-item.cc:47
 msgid "Separation_item:  I've been drinking too much"
 msgstr ""
 
-#: sequential-music-iterator.cc:83
+#: sequential-music-iterator.cc:35
 msgid "Must stop before this music ends"
 msgstr ""
 
-#: slur-engraver.cc:82
-msgid "unterminated slur"
-msgstr ""
-
-#: slur-engraver.cc:98
+#: simple-music-iterator.cc:36
 #, c-format
-msgid "can't find both ends of %s"
+msgid "Junking music: `%s'"
 msgstr ""
 
-#: slur-engraver.cc:98
-msgid "slur"
+#: slur-engraver.cc:89
+msgid "unterminated slur"
 msgstr ""
 
+#: slur-engraver.cc:104
+#, fuzzy
+msgid "can't find start of slur"
+msgstr "impossible de trouver le caractères numéro %d"
+
 #: slur.cc:48
 msgid "Putting slur over rest.  Ignoring."
 msgstr ""
 
-#: slur.cc:122
+#: slur.cc:324
 msgid "Slur over rest?"
 msgstr ""
 
@@ -737,17 +749,6 @@ msgstr "liaison solitaire"
 msgid "no one to print a tuplet start bracket"
 msgstr ""
 
-#: time-signature-engraver.cc:49
-#, fuzzy
-msgid "lost in time:"
-msgstr "perdu dans le temps"
-
-#: time-signature-engraver.cc:50 translator-group.cc:419
-#: translator-group.cc:428
-#, fuzzy, c-format
-msgid "can't find: `%s'"
-msgstr "ne peut pas trouver `%s'"
-
 #: timing-translator.cc:36
 msgid "conflicting timing request"
 msgstr ""
@@ -756,31 +757,41 @@ msgstr ""
 msgid "This is the other timing request"
 msgstr ""
 
-#: timing-translator.cc:79
+#: timing-translator.cc:65
 #, c-format
 msgid "barcheck failed at: %s"
 msgstr ""
 
-#: translator-ctors.cc:41
+#: translator-ctors.cc:40
 #, fuzzy, c-format
 msgid "unknown translator: `%s'"
 msgstr "traducteur inconnu `%s'"
 
-#: translator-group.cc:82 translator-group.cc:95
+#: translator-def.cc:96
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-group.cc:86 translator-group.cc:101
+#: translator-def.cc:102
 #, fuzzy, c-format
 msgid "Already contains: `%s'"
 msgstr "Contient déjà un `%s'"
 
-#: translator-group.cc:213
+#: translator-def.cc:103
+#, fuzzy, c-format
+msgid "Not adding translator: `%s'"
+msgstr "traducteur inconnu `%s'"
+
+#: translator-def.cc:215
+#, fuzzy, c-format
+msgid "can't find: `%s'"
+msgstr "ne peut pas trouver `%s'"
+
+#: translator-group.cc:142
 #, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr "ne peut pas trouver ou créer `%s' nommé `%s'"
 
-#: translator-group.cc:325
+#: translator-group.cc:246
 #, fuzzy, c-format
 msgid "can't find or create: `%s'"
 msgstr "ne peut pas trouver ou créer `%s'"
@@ -789,178 +800,203 @@ msgstr "ne peut pas trouver ou cr
 msgid "no one to print a volta bracket"
 msgstr ""
 
-#: parser.yy:59
+#: parser.yy:61
 #, c-format
 msgid "Oldest supported input version: %s"
 msgstr "Plus ancienne version supportée: %s"
 
-#: parser.yy:426
-msgid "Need a translator group for a context"
-msgstr ""
-
-#: parser.yy:441
+#: parser.yy:447
 msgid "Wrong type for property value"
 msgstr "Mauvais type pour la valeur de la propriété"
 
-#: parser.yy:626
+#: parser.yy:633
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:666
+#: parser.yy:673
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:671
+#: parser.yy:678
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:971
+#: parser.yy:1015
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:981
+#: parser.yy:1025
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1073
+#: parser.yy:1117
 #, c-format
 msgid "Expecting %d arguments"
 msgstr ""
 
-#: parser.yy:1089
+#: parser.yy:1133
 msgid "Must have 2 arguments for duration"
 msgstr ""
 
-#: parser.yy:1096 parser.yy:1104 parser.yy:1339
+#: parser.yy:1140 parser.yy:1148 parser.yy:1383
 #, fuzzy
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "il fayt être en mode Parole pour les paroles"
 
-#: parser.yy:1245 parser.yy:1265
+#: parser.yy:1289 parser.yy:1309
 #, c-format
 msgid "not a duration: %d"
 msgstr "pas une durée: %d"
 
-#: parser.yy:1274
+#: parser.yy:1318
 #, fuzzy
 msgid "Have to be in Note mode for notes"
 msgstr "il faut être en mode Note pour les notes"
 
-#: parser.yy:1352
+#: parser.yy:1396
 #, fuzzy
 msgid "Have to be in Chord mode for chords"
 msgstr "il faut être en mode Accord pour les accords"
 
-#: parser.yy:1513 parser.yy:1531
+#: parser.yy:1558 parser.yy:1576
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1517
+#: parser.yy:1562
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:158
+#: lexer.ll:159
 msgid "EOF found inside a comment"
 msgstr "EOF trouvé dans un commentaire"
 
-#: lexer.ll:172
+#: lexer.ll:173
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:196
+#: lexer.ll:197
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "indentifiant non défini: `%s'"
 
 #. backup rule
-#: lexer.ll:201
+#: lexer.ll:202
 msgid "Missing end quote"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:223 lexer.ll:227
+#: lexer.ll:224 lexer.ll:228
 msgid "white expected"
 msgstr "blanche attendue"
 
-#: lexer.ll:235
+#: lexer.ll:236
 msgid "Can't evaluate Scheme in safe mode"
 msgstr ""
 
-#: lexer.ll:431
+#: lexer.ll:432
 #, fuzzy, c-format
 msgid "invalid character: `%c'"
 msgstr "caractères illégal: `%c'"
 
-#: lexer.ll:508
+#: lexer.ll:512
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "chaîne d'échappement inconnue: `\\%s'"
 
-#: lexer.ll:594
+#: lexer.ll:598
 #, c-format
 msgid "incorrect mudela version: %s (%s, %s)"
 msgstr "version de mudela incorrecte: %s (%s, %s)"
 
-#: lexer.ll:595
+#: lexer.ll:599
 msgid "Consider converting the input with the convert-mudela script"
 msgstr ""
 
-#: main.cc:91
+#: main.cc:92
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr ""
 
-#: main.cc:94
+#: main.cc:95
 msgid "ACC[:MINOR]"
 msgstr ""
 
-#: main.cc:94
+#: main.cc:95
 msgid "set key: ACC +sharps/-flats; :1 minor"
 msgstr ""
 
-#: main.cc:95
-msgid "don't output tuplets or double dots, smallest is 32"
+#: main.cc:96
+msgid "don't output tuplets, double dots or rests, smallest is 32"
 msgstr ""
 
-#: main.cc:96
+#: main.cc:97
 #, fuzzy
 msgid "set FILE as default output"
 msgstr "  -o, --output=FILE      set FILE come output di default\n"
 
-#: main.cc:97
+#: main.cc:98
 msgid "don't output tuplets"
 msgstr ""
 
-#: main.cc:98
+#: main.cc:99
 msgid "be quiet"
 msgstr "mode silencieux"
 
-#: main.cc:99
+#: main.cc:100
+msgid "don't output rests or skips"
+msgstr ""
+
+#: main.cc:101
 msgid "DUR"
 msgstr ""
 
-#: main.cc:99
+#: main.cc:101
 #, fuzzy
 msgid "set smallest duration"
 msgstr "Positionne la plus petite durée (?)"
 
-#: main.cc:102
+#: main.cc:104
 msgid "be verbose"
 msgstr ""
 
-#: main.cc:104
+#: main.cc:106
 msgid "assume no double dotted notes"
 msgstr ""
 
-#: main.cc:111
+#: main.cc:113
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "Usage: %s [OPTION... [FICHIER]"
 
-#: main.cc:113
+#: main.cc:115
 #, fuzzy
 msgid "Translate MIDI-file to mudela"
 msgstr "Traduction du fichier MIDI en mudela"
 
+#: main.cc:129
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr ""
+
+#: main.cc:131
+#, c-format
+msgid "no_rests: %d\n"
+msgstr ""
+
+#: main.cc:133
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr ""
+
+#: main.cc:135
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr ""
+
+#: main.cc:138
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr ""
+
 #: midi-parser.cc:64
 msgid "zero length string encountered"
 msgstr "chaîne de taille vide rencontrée"
@@ -1057,11 +1093,11 @@ msgstr "Quantification des colonnes..."
 msgid "Settling columns..."
 msgstr ""
 
-#: mudela-staff.cc:178
+#: mudela-staff.cc:209
 msgid "% MIDI copyright:"
 msgstr ""
 
-#: mudela-staff.cc:179
+#: mudela-staff.cc:210
 #, fuzzy
 msgid "% MIDI instrument:"
 msgstr "Pas d'instrument tel: `%s'"
@@ -1085,6 +1121,10 @@ msgstr "% G
 msgid "% from input file: "
 msgstr "% dal file di input: "
 
+#, fuzzy
+#~ msgid "lost in time:"
+#~ msgstr "perdu dans le temps"
+
 #, fuzzy
 #~ msgid "No key name, assuming `C'"
 #~ msgstr "Pas de nom de clé: Do assumé"
index 6d4b9d5dc603fd5981c2fdd6f7da962bb038dc86..961b893efea1b312f5e7dbd0e72fc5d456eb849c 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -5,7 +5,7 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"POT-Creation-Date: 2000-07-24 21:55+0200\n"
+"POT-Creation-Date: 2000-09-17 12:01+0200\n"
 "Content-Type: text/plain; charset=\n"
 "Date: 1998-05-30 00:17:12+0200\n"
 "From:  <jantien@xs4all.nl>\n"
@@ -64,7 +64,7 @@ msgid "can't map file"
 msgstr "non posso mappare il documento"
 
 #: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:111
-#: paper-stream.cc:25 scores.cc:37 simple-file-storage.cc:44 text-stream.cc:22
+#: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:22
 #, c-format
 msgid "can't open file: `%s'"
 msgstr "non posso aprire il file: `%s'"
@@ -100,57 +100,58 @@ msgstr "non riesco a trovare il carattere `%s'"
 msgid "Error parsing AFM file"
 msgstr ""
 
-#: all-font-metrics.cc:149 lookup.cc:80
+#: all-font-metrics.cc:151 lookup.cc:80
 #, fuzzy, c-format
 msgid "can't find font: `%s'"
 msgstr "non trovo il file: `%s'"
 
-#: all-font-metrics.cc:150
+#: all-font-metrics.cc:152
 msgid "Loading default font"
 msgstr ""
 
-#: all-font-metrics.cc:167
+#: all-font-metrics.cc:169
 #, fuzzy, c-format
 msgid "can't find default font: `%s'"
 msgstr "non trovo il file: `%s'"
 
-#: all-font-metrics.cc:168 includable-lexer.cc:50 lookup.cc:81 scores.cc:108
+#: all-font-metrics.cc:170 includable-lexer.cc:50 lookup.cc:81 scores.cc:109
 #, fuzzy, c-format
 msgid "(search path: `%s')"
 msgstr "(Il path di caricamento è `%s'"
 
-#: all-font-metrics.cc:169
+#: all-font-metrics.cc:171
 msgid "Giving up"
 msgstr ""
 
 #: auto-change-iterator.cc:43 change-iterator.cc:60
+#: part-combine-music-iterator.cc:85
 msgid "Can't switch translators, I'm there already"
 msgstr ""
 
-#: beam-engraver.cc:75 beam-engraver.cc:91
+#: beam-engraver.cc:76 beam-engraver.cc:109
 #, fuzzy
 msgid "can't find start of beam"
 msgstr "non trovo le estremità di %s"
 
-#: beam-engraver.cc:120
+#: beam-engraver.cc:138
 msgid "already have a beam"
 msgstr ""
 
-#: beam-engraver.cc:177
+#: beam-engraver.cc:202
 #, fuzzy
 msgid "unterminated beam"
 msgstr "beam non terminato"
 
-#: beam-engraver.cc:210 chord-tremolo-engraver.cc:172
+#: beam-engraver.cc:240 chord-tremolo-engraver.cc:176
 #, fuzzy
 msgid "stem must have Rhythmic structure"
 msgstr "I gambi devono avere una struttura ritmica."
 
-#: beam-engraver.cc:221
+#: beam-engraver.cc:251
 msgid "stem doesn't fit in beam"
 msgstr "il gambo non rientra nel beam"
 
-#: beam-engraver.cc:222
+#: beam-engraver.cc:252
 msgid "beam was started here"
 msgstr ""
 
@@ -159,7 +160,7 @@ msgstr ""
 msgid "beam has less than two stems"
 msgstr "beam con meno di due gambi"
 
-#: beam.cc:510
+#: beam.cc:511
 msgid "weird beam vertical offset"
 msgstr ""
 
@@ -196,17 +197,17 @@ msgstr "beam non terminato"
 msgid "no one to print a tremolos"
 msgstr ""
 
-#: chord.cc:152
+#: chord.cc:162
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr ""
 
-#: chord.cc:376
+#: chord.cc:386
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
-#: clef-engraver.cc:167
+#: clef-engraver.cc:165
 #, fuzzy
 msgid "unknown clef type"
 msgstr "tipo di chiave sconosciuto"
@@ -243,22 +244,22 @@ msgstr "non posso settare mem-checking"
 msgid "NaN"
 msgstr ""
 
-#: dynamic-engraver.cc:184 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:192 span-dynamic-performer.cc:87
 #, fuzzy
 msgid "can't find start of (de)crescendo"
 msgstr "non trovo un (de)crescendo fino alla fine"
 
-#: dynamic-engraver.cc:203
+#: dynamic-engraver.cc:213
 #, fuzzy
 msgid "already have a crescendo"
 msgstr "crescendo non terminato"
 
-#: dynamic-engraver.cc:204
+#: dynamic-engraver.cc:214
 #, fuzzy
 msgid "already have a decrescendo"
 msgstr "crescendo non terminato"
 
-#: dynamic-engraver.cc:289
+#: dynamic-engraver.cc:303
 #, fuzzy
 msgid "unterminated (de)crescendo"
 msgstr "crescendo non terminato"
@@ -303,12 +304,12 @@ msgid "wrong identifier type, expected: `%s'"
 msgstr "Tipo di identificatore sbagliato: "
 
 #: includable-lexer.cc:48 lily-guile.cc:117 midi-score-parser.cc:24
-#: scores.cc:107 scores.cc:113
+#: scores.cc:108 scores.cc:114
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "non trovo il file: `%s'"
 
-#: key-engraver.cc:92 key-performer.cc:54
+#: key-engraver.cc:101 key-performer.cc:54
 msgid "FIXME: key change merge"
 msgstr ""
 
@@ -340,11 +341,15 @@ msgstr ""
 msgid "Non-matching braces in text `%s', adding braces"
 msgstr ""
 
-#: lyric-phrasing-engraver.cc:147
-msgid "lyrics found without matching notehead ... aligning on self"
+#: lyric-phrasing-engraver.cc:245
+msgid "lyrics found without any matching notehead"
+msgstr ""
+
+#: lyric-phrasing-engraver.cc:250
+msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:75 main.cc:92
+#: main.cc:75 main.cc:93
 #, fuzzy
 msgid "enable debugging output"
 msgstr "  -D, --debug            abilita l'output di debugging\n"
@@ -357,7 +362,7 @@ msgstr ""
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr ""
 
-#: main.cc:77 main.cc:93
+#: main.cc:77 main.cc:94
 msgid "this help"
 msgstr ""
 
@@ -370,7 +375,7 @@ msgstr ""
 msgid "add DIR to search path"
 msgstr "  -I, --include=DIR      aggiunge DIR ai path di ricerca\n"
 
-#: main.cc:79 main.cc:96
+#: main.cc:79 main.cc:97
 msgid "FILE"
 msgstr ""
 
@@ -413,7 +418,7 @@ msgstr ""
 "  -s, --safe             inibisce la rinomina dei file di output e "
 "l'esportazione di macro di TeX\n"
 
-#: main.cc:85 main.cc:100
+#: main.cc:85 main.cc:102
 #, fuzzy
 msgid "don't timestamp the output"
 msgstr ""
@@ -424,7 +429,7 @@ msgstr ""
 msgid "switch on experimental features"
 msgstr "  -t, --test             usa le caratteristiche sperimentali\n"
 
-#: main.cc:87 main.cc:101
+#: main.cc:87 main.cc:103
 msgid "print version number"
 msgstr ""
 
@@ -432,43 +437,46 @@ msgstr ""
 msgid "verbose"
 msgstr ""
 
-#: main.cc:89 main.cc:103
+#: main.cc:89 main.cc:105
 #, fuzzy
 msgid "show warranty and copyright"
 msgstr "  -w, --warranty         mostra la garanzia e il copyright\n"
 
-#: main.cc:105
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:107
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Uso: %s [OPZIONE]... [FILE]..."
 
-#: main.cc:107
+#: main.cc:109
 #, fuzzy
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "Stampa partitura oppure suona una song MIDI da FILE o <stdin>"
 
-#: main.cc:111
+#: main.cc:113
 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:116 main.cc:117
+#: main.cc:118 main.cc:119
 msgid "Options:"
 msgstr "Opzioni: "
 
-#: main.cc:121
+#: main.cc:123
 #, fuzzy
 msgid "This binary was compiled with the following options:"
 msgstr "GNU LilyPond è stata compilata con le seguenti impostazioni:"
 
-#: main.cc:120 main.cc:140
+#: main.cc:122 main.cc:142
 #, c-format
 msgid "Report bugs to %s"
 msgstr ""
 
-#: main.cc:53 main.cc:148
+#: main.cc:54 main.cc:150
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -476,17 +484,17 @@ msgid ""
 "certain conditions.  Invoke as `%s --warranty' for more information.\n"
 msgstr ""
 
-#: main.cc:60 main.cc:155 main.cc:167
+#: main.cc:61 main.cc:157 main.cc:169
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s di"
 
 #. GNU GNU?
-#: main.cc:165
+#: main.cc:167
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU"
 
-#: main.cc:69 main.cc:173
+#: main.cc:70 main.cc:175
 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"
@@ -541,11 +549,7 @@ msgstr "indicazione altezza priva di senso"
 msgid "Error syncing file (disk full?)"
 msgstr "errore nel sincronizzare il file (disco pieno?)"
 
-#: music-output-def.cc:51
-msgid "Interpretation context with empty type"
-msgstr ""
-
-#: music-output-def.cc:78
+#: music-output-def.cc:71
 #, fuzzy, c-format
 msgid "can't find `%s' context"
 msgstr "non trovo `%s'"
@@ -555,21 +559,21 @@ msgstr "non trovo `%s'"
 msgid "Transposition by %s makes accidental larger than two"
 msgstr "la trasposizine di %s rende le alterazioni più che doppie"
 
-#: my-lily-lexer.cc:118
+#: my-lily-lexer.cc:124
 #, fuzzy, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "Il nome dell'identificatore è una parola chiave (`%s')"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "error at EOF: %s"
 msgstr "errore alla fine del file: %s"
 
-#: midi-score-parser.cc:94 my-lily-parser.cc:55
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
 msgid "Parsing..."
 msgstr "Analisi..."
 
-#: my-lily-parser.cc:63
+#: my-lily-parser.cc:55
 #, fuzzy
 msgid "Braces don't match"
 msgstr "le bretelle no si accoppiano"
@@ -592,6 +596,22 @@ msgstr "Pre-elaborazione..."
 msgid "Outputting Score, defined at: "
 msgstr "emetto lo Score, definito a: "
 
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:104
+#, c-format
+msgid "I'm one myself: `%s'"
+msgstr ""
+
+#: part-combine-music-iterator.cc:107
+#, c-format
+msgid "none of these in my family: `%s'"
+msgstr ""
+
 #: performance.cc:50
 #, fuzzy
 msgid "Track ... "
@@ -622,30 +642,21 @@ msgstr "L'output MIDI 
 msgid "can't find start of piano pedal: %s"
 msgstr "non risco a trovare una ruling note a %s"
 
-#: property-engraver.cc:128
+#: property-engraver.cc:131
 #, fuzzy
 msgid "Wrong type for property"
 msgstr "Tipo sbagliato per il valore di una proprietà"
 
-#: repeat-engraver.cc:253
-msgid "No bar engraver found.  Ignoring repeats."
-msgstr ""
-
-#: request-chord-iterator.cc:72
+#: request-chord-iterator.cc:93
 #, fuzzy, c-format
 msgid "Junking request: `%s'"
 msgstr "Cosa? Non è una richiesta: `%s'"
 
-#: request-chord-iterator.cc:75
+#: request-chord-iterator.cc:96
 #, fuzzy, c-format
 msgid "Huh?  Not a Request: `%s'"
 msgstr "Cosa? Non è una richiesta: `%s'"
 
-#: request-iterator.cc:20
-#, c-format
-msgid "Junking music: `%s'"
-msgstr ""
-
 #: rest-collision.cc:159
 #, fuzzy
 msgid "too many colliding rests"
@@ -655,7 +666,7 @@ msgstr "Troppi crescendi"
 msgid "too many notes for rest collision"
 msgstr ""
 
-#: score-engraver.cc:151
+#: score-engraver.cc:149
 #, fuzzy, c-format
 msgid "unbound spanner `%s'"
 msgstr "Spanner non legato `%s'"
@@ -675,59 +686,60 @@ msgstr "ho bisogno di musica nello spartito"
 msgid "Errors found/*, not processing score*/"
 msgstr "ho trovato un errore, /*non sto elaborando lo spartito*/"
 
-#: score.cc:100
+#: score.cc:101
 #, fuzzy, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr "durata: %.2f secondi"
 
 #: scores.cc:34
 #, fuzzy, c-format
-msgid "Writing dependency file: `%s'...\n"
+msgid "Writing dependency file: `%s'..."
 msgstr "scrivo il file delle dipendenze: `%s'..."
 
-#: scores.cc:78
+#: scores.cc:79
 #, fuzzy
 msgid "Score contains errors; will not process it"
 msgstr "lo spartito contiene errori; non lo elaborerò"
 
-#: scores.cc:123
-#, c-format
-msgid "Now processing: `%s'\n"
-msgstr ""
+#: scores.cc:124
+#, fuzzy, c-format
+msgid "Now processing: `%s'"
+msgstr "stringa di escape sconosciuta: `\\%s'"
 
-#: script-engraver.cc:65
+#: script-engraver.cc:66
 #, c-format
 msgid "Don't know how to interpret articulation `%s'"
 msgstr ""
 
 #. this shouldn't happen, but let's continue anyway.
-#: separation-item.cc:48
+#: separation-item.cc:47
 msgid "Separation_item:  I've been drinking too much"
 msgstr ""
 
-#: sequential-music-iterator.cc:83
+#: sequential-music-iterator.cc:35
 msgid "Must stop before this music ends"
 msgstr ""
 
-#: slur-engraver.cc:82
+#: simple-music-iterator.cc:36
+#, c-format
+msgid "Junking music: `%s'"
+msgstr ""
+
+#: slur-engraver.cc:89
 msgid "unterminated slur"
 msgstr "slur non terminato"
 
-#: slur-engraver.cc:98
-#, c-format
-msgid "can't find both ends of %s"
+#: slur-engraver.cc:104
+#, fuzzy
+msgid "can't find start of slur"
 msgstr "non trovo le estremità di %s"
 
-#: slur-engraver.cc:98
-msgid "slur"
-msgstr ""
-
 #: slur.cc:48
 #, fuzzy
 msgid "Putting slur over rest.  Ignoring."
 msgstr "Metto uno slur sulla pausa."
 
-#: slur.cc:122
+#: slur.cc:324
 #, fuzzy
 msgid "Slur over rest?"
 msgstr "Metto uno slur sulla pausa."
@@ -769,17 +781,6 @@ msgstr ""
 msgid "no one to print a tuplet start bracket"
 msgstr ""
 
-#: time-signature-engraver.cc:49
-#, fuzzy
-msgid "lost in time:"
-msgstr "mi sono persa nel tempo"
-
-#: time-signature-engraver.cc:50 translator-group.cc:419
-#: translator-group.cc:428
-#, fuzzy, c-format
-msgid "can't find: `%s'"
-msgstr "non trovo `%s'"
-
 #: timing-translator.cc:36
 msgid "conflicting timing request"
 msgstr "richieste di timing in conflitto"
@@ -788,31 +789,41 @@ msgstr "richieste di timing in conflitto"
 msgid "This is the other timing request"
 msgstr ""
 
-#: timing-translator.cc:79
+#: timing-translator.cc:65
 #, fuzzy, c-format
 msgid "barcheck failed at: %s"
 msgstr "controllo del battute fallito: %s"
 
-#: translator-ctors.cc:41
+#: translator-ctors.cc:40
 #, fuzzy, c-format
 msgid "unknown translator: `%s'"
 msgstr "traduttore sconosciuto `%s'"
 
-#: translator-group.cc:82 translator-group.cc:95
+#: translator-def.cc:96
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-group.cc:86 translator-group.cc:101
+#: translator-def.cc:102
 #, c-format
 msgid "Already contains: `%s'"
 msgstr ""
 
-#: translator-group.cc:213
+#: translator-def.cc:103
+#, fuzzy, c-format
+msgid "Not adding translator: `%s'"
+msgstr "traduttore sconosciuto `%s'"
+
+#: translator-def.cc:215
+#, fuzzy, c-format
+msgid "can't find: `%s'"
+msgstr "non trovo `%s'"
+
+#: translator-group.cc:142
 #, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr "non trovo e non posso creare '%s' chiamato '%s'"
 
-#: translator-group.cc:325
+#: translator-group.cc:246
 #, fuzzy, c-format
 msgid "can't find or create: `%s'"
 msgstr "non trovo e non posso creare `%s'"
@@ -821,187 +832,212 @@ msgstr "non trovo e non posso creare `%s'"
 msgid "no one to print a volta bracket"
 msgstr ""
 
-#: parser.yy:59
+#: parser.yy:61
 #, c-format
 msgid "Oldest supported input version: %s"
 msgstr ""
 
-#: parser.yy:426
-msgid "Need a translator group for a context"
-msgstr "Ho bisogno di un gruppo di traduzione per un contesto"
-
-#: parser.yy:441
+#: parser.yy:447
 msgid "Wrong type for property value"
 msgstr "Tipo sbagliato per il valore di una proprietà"
 
-#: parser.yy:626
+#: parser.yy:633
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:666
+#: parser.yy:673
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:671
+#: parser.yy:678
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:971
+#: parser.yy:1015
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:981
+#: parser.yy:1025
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1073
+#: parser.yy:1117
 #, c-format
 msgid "Expecting %d arguments"
 msgstr ""
 
-#: parser.yy:1089
+#: parser.yy:1133
 msgid "Must have 2 arguments for duration"
 msgstr ""
 
-#: parser.yy:1096 parser.yy:1104 parser.yy:1339
+#: parser.yy:1140 parser.yy:1148 parser.yy:1383
 #, fuzzy
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "bisogna essere in Lyric mode per i testi"
 
-#: parser.yy:1245 parser.yy:1265
+#: parser.yy:1289 parser.yy:1309
 #, c-format
 msgid "not a duration: %d"
 msgstr "non è una durata: %d"
 
-#: parser.yy:1274
+#: parser.yy:1318
 #, fuzzy
 msgid "Have to be in Note mode for notes"
 msgstr "bisogna essere in Note mode per le note"
 
-#: parser.yy:1352
+#: parser.yy:1396
 #, fuzzy
 msgid "Have to be in Chord mode for chords"
 msgstr "bisogna essere in Chord mode per gli accordi"
 
-#: parser.yy:1513 parser.yy:1531
+#: parser.yy:1558 parser.yy:1576
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1517
+#: parser.yy:1562
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:158
+#: lexer.ll:159
 msgid "EOF found inside a comment"
 msgstr "ho trovato un EOF in un commento"
 
-#: lexer.ll:172
+#: lexer.ll:173
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:196
+#: lexer.ll:197
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "indentificatore non definito: `%s'"
 
 #. backup rule
-#: lexer.ll:201
+#: lexer.ll:202
 #, fuzzy
 msgid "Missing end quote"
 msgstr "apice finale mancante"
 
 #. backup rule
-#: lexer.ll:223 lexer.ll:227
+#: lexer.ll:224 lexer.ll:228
 msgid "white expected"
 msgstr "aspettavo uno spazio bianco"
 
-#: lexer.ll:235
+#: lexer.ll:236
 msgid "Can't evaluate Scheme in safe mode"
 msgstr ""
 
-#: lexer.ll:431
+#: lexer.ll:432
 #, fuzzy, c-format
 msgid "invalid character: `%c'"
 msgstr "carattere illegale: `%c'"
 
-#: lexer.ll:508
+#: lexer.ll:512
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "stringa di escape sconosciuta: `\\%s'"
 
-#: lexer.ll:594
+#: lexer.ll:598
 #, c-format
 msgid "incorrect mudela version: %s (%s, %s)"
 msgstr "versione di mudela errata: %s (%s, %s)"
 
-#: lexer.ll:595
+#: lexer.ll:599
 msgid "Consider converting the input with the convert-mudela script"
 msgstr ""
 
-#: main.cc:91
+#: main.cc:92
 #, fuzzy
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr "  -b, --no-quantify      scrive durate esatte,  p.es.: a4*385/384\n"
 
-#: main.cc:94
+#: main.cc:95
 msgid "ACC[:MINOR]"
 msgstr ""
 
-#: main.cc:94
+#: main.cc:95
 #, fuzzy
 msgid "set key: ACC +sharps/-flats; :1 minor"
 msgstr ""
 " -k, --key=ACC[:MINOR]  imposta l'armatura: ACC +diesis/-bemolli; :1 minore\n"
 
-#: main.cc:95
+#: main.cc:96
 #, fuzzy
-msgid "don't output tuplets or double dots, smallest is 32"
+msgid "don't output tuplets, double dots or rests, smallest is 32"
 msgstr ""
 "  -n, --no-silly         assume che non ci siano gruppetti o doppi punti, la "
 "figura più piccola è 32\n"
 
-#: main.cc:96
+#: main.cc:97
 #, fuzzy
 msgid "set FILE as default output"
 msgstr "  -o, --output=FILE      set FILE come output di default\n"
 
-#: main.cc:97
+#: main.cc:98
 msgid "don't output tuplets"
 msgstr ""
 
-#: main.cc:98
+#: main.cc:99
 msgid "be quiet"
 msgstr ""
 
-#: main.cc:99
+#: main.cc:100
+msgid "don't output rests or skips"
+msgstr ""
+
+#: main.cc:101
 msgid "DUR"
 msgstr ""
 
-#: main.cc:99
+#: main.cc:101
 #, fuzzy
 msgid "set smallest duration"
 msgstr "indicazione durata priva di senso"
 
-#: main.cc:102
+#: main.cc:104
 msgid "be verbose"
 msgstr ""
 
-#: main.cc:104
+#: main.cc:106
 #, fuzzy
 msgid "assume no double dotted notes"
 msgstr ""
 " -x, --no-double-dots   assume che non ci siano note con doppio punto\n"
 
-#: main.cc:111
+#: main.cc:113
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "Uso: %s [OPZIONE... [FILE]"
 
-#: main.cc:113
+#: main.cc:115
 #, fuzzy
 msgid "Translate MIDI-file to mudela"
 msgstr "Traduce un file midi in mudela"
 
+#: main.cc:129
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr ""
+
+#: main.cc:131
+#, c-format
+msgid "no_rests: %d\n"
+msgstr ""
+
+#: main.cc:133
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr ""
+
+#: main.cc:135
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr ""
+
+#: main.cc:138
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr ""
+
 #: midi-parser.cc:64
 msgid "zero length string encountered"
 msgstr "ho incostrato una striga di lunghezza nulla"
@@ -1098,11 +1134,11 @@ msgstr "Quantifico le colonne..."
 msgid "Settling columns..."
 msgstr "Sistemo le colonne..."
 
-#: mudela-staff.cc:178
+#: mudela-staff.cc:209
 msgid "% MIDI copyright:"
 msgstr ""
 
-#: mudela-staff.cc:179
+#: mudela-staff.cc:210
 #, fuzzy
 msgid "% MIDI instrument:"
 msgstr "% strumento:"
@@ -1126,6 +1162,16 @@ msgstr "% Generato automaticamente"
 msgid "% from input file: "
 msgstr "% dal file di input: "
 
+#~ msgid "can't find both ends of %s"
+#~ msgstr "non trovo le estremità di %s"
+
+#, fuzzy
+#~ msgid "lost in time:"
+#~ msgstr "mi sono persa nel tempo"
+
+#~ msgid "Need a translator group for a context"
+#~ msgstr "Ho bisogno di un gruppo di traduzione per un contesto"
+
 #, fuzzy
 #~ msgid "No key name, assuming `C'"
 #~ msgstr "Nessuna armatura di chiave: assumo Do'"
index 948b349c7fe99f51809d44d45ce0ee83ce3fdf24..3222c14fe4e21063c2f7c678dc5a6d9aede77b56 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: 2000-07-24 21:55+0200\n"
+"POT-Creation-Date: 2000-09-17 12:01+0200\n"
 "PO-Revision-Date: 2000-03-29 20:50+0900\n"
 "Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
 "Language-Team: Japanese <ja@li.org>\n"
@@ -64,7 +64,7 @@ msgid "can't map file"
 msgstr "¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤Ç¤­¤Þ¤»¤ó"
 
 #: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:111
-#: paper-stream.cc:25 scores.cc:37 simple-file-storage.cc:44 text-stream.cc:22
+#: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:22
 #, fuzzy, c-format
 msgid "can't open file: `%s'"
 msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
@@ -100,58 +100,59 @@ msgstr "
 msgid "Error parsing AFM file"
 msgstr ""
 
-#: all-font-metrics.cc:149 lookup.cc:80
+#: all-font-metrics.cc:151 lookup.cc:80
 #, fuzzy, c-format
 msgid "can't find font: `%s'"
 msgstr "¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
 
-#: all-font-metrics.cc:150
+#: all-font-metrics.cc:152
 msgid "Loading default font"
 msgstr "¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤ò¥í¡¼¥É¤·¤Þ¤¹"
 
-#: all-font-metrics.cc:167
+#: all-font-metrics.cc:169
 #, fuzzy, c-format
 msgid "can't find default font: `%s'"
 msgstr "¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
 
-#: all-font-metrics.cc:168 includable-lexer.cc:50 lookup.cc:81 scores.cc:108
+#: all-font-metrics.cc:170 includable-lexer.cc:50 lookup.cc:81 scores.cc:109
 #, c-format
 msgid "(search path: `%s')"
 msgstr "(¸¡º÷¥Ñ¥¹: `%s')"
 
-#: all-font-metrics.cc:169
+#: all-font-metrics.cc:171
 msgid "Giving up"
 msgstr "Äü¤á¤Þ¤·¤¿"
 
 #: auto-change-iterator.cc:43 change-iterator.cc:60
+#: part-combine-music-iterator.cc:85
 msgid "Can't switch translators, I'm there already"
 msgstr "¥È¥é¥ó¥¹¥ì¡¼¥¿¤òÀÚ¤êÂؤ¨¤é¤ì¤Þ¤»¤ó¡£´û¤Ë¤½¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
 
-#: beam-engraver.cc:75 beam-engraver.cc:91
+#: beam-engraver.cc:76 beam-engraver.cc:109
 msgid "can't find start of beam"
 msgstr ""
 
-#: beam-engraver.cc:120
+#: beam-engraver.cc:138
 #, fuzzy
 msgid "already have a beam"
 msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
 
-#: beam-engraver.cc:177
+#: beam-engraver.cc:202
 #, fuzzy
 msgid "unterminated beam"
 msgstr "½ªÃ¼¤Î¤Ê¤¤¥Ï¥¤¥Õ¥ó"
 
-#: beam-engraver.cc:210 chord-tremolo-engraver.cc:172
+#: beam-engraver.cc:240 chord-tremolo-engraver.cc:176
 #, fuzzy
 msgid "stem must have Rhythmic structure"
 msgstr "ÉäÈø¤Ï¥ê¥º¥à¹½Â¤¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
 
-#: beam-engraver.cc:221
+#: beam-engraver.cc:251
 #, fuzzy
 msgid "stem doesn't fit in beam"
 msgstr "ÉäÈø¤¬³Ã¤ÎÃæ¤Ë¤ª¤µ¤Þ¤ê¤Þ¤»¤ó"
 
-#: beam-engraver.cc:222
+#: beam-engraver.cc:252
 #, fuzzy
 msgid "beam was started here"
 msgstr "³Ã¤Ï¤³¤³¤«¤é³«»Ï¤µ¤ì¤Þ¤·¤¿"
@@ -161,7 +162,7 @@ msgstr "
 msgid "beam has less than two stems"
 msgstr "³Ã¤¬Æó¤Ä̤Ëþ¤ÎÉäÈø¤È¤È¤â¤Ë»È¤ï¤ì¤Þ¤·¤¿"
 
-#: beam.cc:510
+#: beam.cc:511
 msgid "weird beam vertical offset"
 msgstr "¿âľÊý¸þ¤Î°ÌÃ֤Ȥ·¤Æ¤ª¤«¤·¤Ê³Ã"
 
@@ -199,17 +200,17 @@ msgstr "
 msgid "no one to print a tremolos"
 msgstr "È¿Éüµ­¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: chord.cc:152
+#: chord.cc:162
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr "̵¸ú¤Ê°ú¤­»»: ¥³¡¼¥É¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %s"
 
-#: chord.cc:376
+#: chord.cc:386
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr "̵¸ú¤Êž²ó¥Ô¥Ã¥Á: ¥³¡¼¥É¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %s"
 
-#: clef-engraver.cc:167
+#: clef-engraver.cc:165
 msgid "unknown clef type"
 msgstr "ÉÔÌÀ¤Ê²»Éôµ­¹æ(Clef)"
 
@@ -245,22 +246,22 @@ msgstr "
 msgid "NaN"
 msgstr "NaN"
 
-#: dynamic-engraver.cc:184 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:192 span-dynamic-performer.cc:87
 #, fuzzy
 msgid "can't find start of (de)crescendo"
 msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
-#: dynamic-engraver.cc:203
+#: dynamic-engraver.cc:213
 #, fuzzy
 msgid "already have a crescendo"
 msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
 
-#: dynamic-engraver.cc:204
+#: dynamic-engraver.cc:214
 #, fuzzy
 msgid "already have a decrescendo"
 msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
 
-#: dynamic-engraver.cc:289
+#: dynamic-engraver.cc:303
 #, fuzzy
 msgid "unterminated (de)crescendo"
 msgstr "½ªÎ»¤·¤Æ¤¤¤Ê¤¤¥¯¥ì¥Ã¥·¥§¥ó¥É"
@@ -303,12 +304,12 @@ msgid "wrong identifier type, expected: `%s'"
 msgstr "´Ö°ã¤Ã¤¿¼±Ê̻ҷ¿¡¢¤³¤³¤ËÍè¤ë¤Ù¤­¤â¤Î¤Ï: `%s'"
 
 #: includable-lexer.cc:48 lily-guile.cc:117 midi-score-parser.cc:24
-#: scores.cc:107 scores.cc:113
+#: scores.cc:108 scores.cc:114
 #, fuzzy, c-format
 msgid "can't find file: `%s'"
 msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
 
-#: key-engraver.cc:92 key-performer.cc:54
+#: key-engraver.cc:101 key-performer.cc:54
 msgid "FIXME: key change merge"
 msgstr "FIXME: ¥­¡¼Êѹ¹¤Î¥Þ¡¼¥¸"
 
@@ -340,11 +341,15 @@ msgstr "
 msgid "Non-matching braces in text `%s', adding braces"
 msgstr "¥Æ¥­¥¹¥È `%s' Ãæ¤Ë°ìÃפ¹¤ë¥Ö¥ì¡¼¥¹¤¬¤¢¤ê¤Þ¤»¤ó¡£¥Ö¥ì¡¼¥¹¤òÄɲä·¤Þ¤¹"
 
-#: lyric-phrasing-engraver.cc:147
-msgid "lyrics found without matching notehead ... aligning on self"
+#: lyric-phrasing-engraver.cc:245
+msgid "lyrics found without any matching notehead"
+msgstr ""
+
+#: lyric-phrasing-engraver.cc:250
+msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:75 main.cc:92
+#: main.cc:75 main.cc:93
 msgid "enable debugging output"
 msgstr "¥Ç¥Ð¥Ã¥°½ÐÎϤòÍ­¸ú"
 
@@ -357,7 +362,7 @@ msgstr "EXT"
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr "½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È EXT ¤ò»È¤¦"
 
-#: main.cc:77 main.cc:93
+#: main.cc:77 main.cc:94
 msgid "this help"
 msgstr "¤³¤Î¥Ø¥ë¥×"
 
@@ -369,7 +374,7 @@ msgstr "DIR"
 msgid "add DIR to search path"
 msgstr "DIR ¤ò¸¡º÷¥Ñ¥¹¤ËÄɲÃ"
 
-#: main.cc:79 main.cc:96
+#: main.cc:79 main.cc:97
 msgid "FILE"
 msgstr "FILE"
 
@@ -401,7 +406,7 @@ msgstr "
 msgid "inhibit file output naming and exporting"
 msgstr "̾Á°ÉÕ¤±¤È¥¨¥¯¥¹¥Ý¡¼¥È¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¤òÍÞÀ©¤¹¤ë"
 
-#: main.cc:85 main.cc:100
+#: main.cc:85 main.cc:102
 msgid "don't timestamp the output"
 msgstr "½ÐÎϤ˥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¤Ä¤±¤Ê¤¤"
 
@@ -409,7 +414,7 @@ msgstr "
 msgid "switch on experimental features"
 msgstr "¼Â¸³Åª¤Êµ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ë"
 
-#: main.cc:87 main.cc:101
+#: main.cc:87 main.cc:103
 msgid "print version number"
 msgstr "¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨"
 
@@ -418,20 +423,23 @@ msgstr "
 msgid "verbose"
 msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹"
 
-#: main.cc:89 main.cc:103
+#: main.cc:89 main.cc:105
 msgid "show warranty and copyright"
 msgstr "ÊݾڤÈÃøºî¸¢¤Ë¤Ä¤¤¤Æɽ¼¨¤¹¤ë"
 
-#: main.cc:105
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:107
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]..."
 
-#: main.cc:107
+#: main.cc:109
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "¥Õ¥¡¥¤¥ë¤Î³Ú¶Ê¤òÁÈÈǤ·¤¿¤ê¡¢MIDI ±éÁÕ¤·¤¿¤ê¤¹¤ë"
 
-#: main.cc:111
+#: main.cc:113
 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"
@@ -441,20 +449,20 @@ msgstr ""
 "Èþ¤·¤¤ÉèÌ̤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£LilyPond ¤Ï GNU "
 "¥×¥í¥¸¥§¥¯¥È¤Î°ìÉô¤Ç¤¹¡£\n"
 
-#: main.cc:116 main.cc:117
+#: main.cc:118 main.cc:119
 msgid "Options:"
 msgstr "¥ª¥×¥·¥ç¥ó:"
 
-#: main.cc:121
+#: main.cc:123
 msgid "This binary was compiled with the following options:"
 msgstr "¤³¤Î¥Ð¥¤¥Ê¥ê¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿"
 
-#: main.cc:120 main.cc:140
+#: main.cc:122 main.cc:142
 #, c-format
 msgid "Report bugs to %s"
 msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø"
 
-#: main.cc:53 main.cc:148
+#: main.cc:54 main.cc:150
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -470,17 +478,17 @@ msgstr ""
 "¤³¤ì¤ò²þÊѤ·¤¿¤ê¡¢Ê£À½¤òÇÛÉÛ¤·¤¿¤ê¤¹¤ë»ö¤Ï´¿·Þ¤µ¤ì¤Þ¤¹¡£\n"
 "`--warranty' ¥ª¥×¥·¥ç¥óÉÕ¤­¤Çµ¯Æ°¤¹¤ë¤È¡¢¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤¬ÆÀ¤é¤ì¤Þ¤¹¡£\n"
 
-#: main.cc:60 main.cc:155 main.cc:167
+#: main.cc:61 main.cc:157 main.cc:169
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s by"
 
 #. GNU GNU?
-#: main.cc:165
+#: main.cc:167
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr "GNU LilyPond -- The GNU Project music typesetter"
 
-#: main.cc:69 main.cc:173
+#: main.cc:70 main.cc:175
 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"
@@ -549,11 +557,7 @@ msgstr "
 msgid "Error syncing file (disk full?)"
 msgstr "¥Õ¥¡¥¤¥ë¤ÎƱĴ¥¨¥é¡¼ (¥Ç¥£¥¹¥¯¤¬°ìÇÕ?)"
 
-#: music-output-def.cc:51
-msgid "Interpretation context with empty type"
-msgstr "¶õ¥¿¥¤¥×¤Î²ò¼á¥³¥ó¥Æ¥­¥¹¥È"
-
-#: music-output-def.cc:78
+#: music-output-def.cc:71
 #, fuzzy, c-format
 msgid "can't find `%s' context"
 msgstr "`%s' ¥³¥ó¥Æ¥­¥¹¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
@@ -563,21 +567,21 @@ msgstr "`%s' 
 msgid "Transposition by %s makes accidental larger than two"
 msgstr "%s ¤ÎÊÑÄ´¤Ë¤è¤Ã¤Æ¡¢Æó¤Ä¤òĶ¤¨¤ëÇÉÀ¸²»¤¬ºî¤é¤ì¤Þ¤·¤¿"
 
-#: my-lily-lexer.cc:118
+#: my-lily-lexer.cc:124
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "¼±ÊÌ»Ò̾¤Ï¥­¡¼¥ï¡¼¥É¤Ç¤¹: `%s'"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "error at EOF: %s"
 msgstr "EOF ¤Î¤È¤³¤í¤Ç¥¨¥é¡¼: %s"
 
-#: midi-score-parser.cc:94 my-lily-parser.cc:55
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
 msgid "Parsing..."
 msgstr "¹½Ê¸²òÀÏÃæ..."
 
-#: my-lily-parser.cc:63
+#: my-lily-parser.cc:55
 msgid "Braces don't match"
 msgstr "¥Ö¥ì¡¼¥¹¤¬°ìÃפ·¤Þ¤»¤ó"
 
@@ -598,6 +602,22 @@ msgstr "
 msgid "Outputting Score, defined at: "
 msgstr "ÉèÌ̤ò½ÐÎϤ·¤Þ¤¹¡£¤³¤³¤ÇÄêµÁ: "
 
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:104
+#, fuzzy, c-format
+msgid "I'm one myself: `%s'"
+msgstr "¥È¥é¥ó¥¹¥ì¡¼¥¿¤½¤Î¤â¤Î¤Ç¤¹"
+
+#: part-combine-music-iterator.cc:107
+#, fuzzy, c-format
+msgid "none of these in my family: `%s'"
+msgstr "¥Õ¥¡¥ß¥ê¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
+
 #: performance.cc:50
 msgid "Track ... "
 msgstr "¥È¥é¥Ã¥¯ ..."
@@ -627,30 +647,21 @@ msgstr "%s 
 msgid "can't find start of piano pedal: %s"
 msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿Ê¸»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
 
-#: property-engraver.cc:128
+#: property-engraver.cc:131
 #, fuzzy
 msgid "Wrong type for property"
 msgstr "°À­ÃͤؤΥ¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
 
-#: repeat-engraver.cc:253
-msgid "No bar engraver found.  Ignoring repeats."
-msgstr "¾®À᤬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£È¿Éü¤ò̵»ë¤·¤Þ¤¹¡£"
-
-#: request-chord-iterator.cc:72
+#: request-chord-iterator.cc:93
 #, c-format
 msgid "Junking request: `%s'"
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
 
-#: request-chord-iterator.cc:75
+#: request-chord-iterator.cc:96
 #, c-format
 msgid "Huh?  Not a Request: `%s'"
 msgstr "¤Ï? Í×µá¤Ç¤Ï¤Ê¤¤: `%s'"
 
-#: request-iterator.cc:20
-#, fuzzy, c-format
-msgid "Junking music: `%s'"
-msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-
 #: rest-collision.cc:159
 msgid "too many colliding rests"
 msgstr "µÙÉä¤Î¾×Æͤ¬Â¿¤¹¤®¤Þ¤¹"
@@ -659,7 +670,7 @@ msgstr "
 msgid "too many notes for rest collision"
 msgstr "µÙÉä¤Î¾×ÆͤËÂФ·¤Æ²»É䤬¿¤¹¤®¤Þ¤¹"
 
-#: score-engraver.cc:151
+#: score-engraver.cc:149
 #, c-format
 msgid "unbound spanner `%s'"
 msgstr "ÊĤ¸¤Æ¤¤¤Ê¤¤¥¹¥Ñ¥Ê `%s'"
@@ -677,58 +688,59 @@ msgstr "
 msgid "Errors found/*, not processing score*/"
 msgstr "¥¨¥é¡¼¤òȯ¸«/*, ³ÚÉè¤ò½èÍý¤·¤Þ¤»¤ó*/"
 
-#: score.cc:100
+#: score.cc:101
 #, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr "·Ð²á»þ´Ö: %.2f ÉÃ"
 
 #: scores.cc:34
 #, fuzzy, c-format
-msgid "Writing dependency file: `%s'...\n"
+msgid "Writing dependency file: `%s'..."
 msgstr "°Í¸´Ø·¸¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß: `%s'..."
 
-#: scores.cc:78
+#: scores.cc:79
 msgid "Score contains errors; will not process it"
 msgstr "³ÚÉè¤Ë¥¨¥é¡¼¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹ -- ½èÍý¤·¤Þ¤»¤ó"
 
-#: scores.cc:123
-#, c-format
-msgid "Now processing: `%s'\n"
-msgstr ""
+#: scores.cc:124
+#, fuzzy, c-format
+msgid "Now processing: `%s'"
+msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×ʸ»úÎó: `\\%s'"
 
-#: script-engraver.cc:65
+#: script-engraver.cc:66
 #, c-format
 msgid "Don't know how to interpret articulation `%s'"
 msgstr "²»Àá `%s' ¤Î²ò¼áÊýË¡¤¬È½¤ê¤Þ¤»¤ó"
 
 #. this shouldn't happen, but let's continue anyway.
-#: separation-item.cc:48
+#: separation-item.cc:47
 #, fuzzy
 msgid "Separation_item:  I've been drinking too much"
 msgstr "Single_malt_grouping_item:  °û¤ß¤¹¤®¤Á¤ã¤Ã¤¿"
 
-#: sequential-music-iterator.cc:83
+#: sequential-music-iterator.cc:35
 msgid "Must stop before this music ends"
 msgstr "¤³¤Î³Ú¶Ê¤Î½ª¤ï¤ê¤Þ¤Ç¤Ë»ß¤á¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
 
-#: slur-engraver.cc:82
+#: simple-music-iterator.cc:36
+#, fuzzy, c-format
+msgid "Junking music: `%s'"
+msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+
+#: slur-engraver.cc:89
 msgid "unterminated slur"
 msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥é¡¼"
 
-#: slur-engraver.cc:98
-#, fuzzy, c-format
-msgid "can't find both ends of %s"
-msgstr "%s ¤Îξü¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-
-#: slur-engraver.cc:98
-msgid "slur"
-msgstr "¥¹¥é¡¼"
+#: slur-engraver.cc:104
+#, fuzzy
+msgid "can't find start of slur"
+msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
 #: slur.cc:48
 msgid "Putting slur over rest.  Ignoring."
 msgstr "µÙÉä¤ò¤Þ¤¿¤¤¤À¥¹¥é¡¼¤¬¤¢¤ê¤Þ¤¹¡£Ìµ»ë¤·¤Þ¤¹¡£"
 
-#: slur.cc:122
+#: slur.cc:324
 msgid "Slur over rest?"
 msgstr "¥¹¥é¡¼¤¬µÙÉä¤ò¤Þ¤¿¤¤¤Ç¤¤¤ë?"
 
@@ -768,16 +780,6 @@ msgstr "
 msgid "no one to print a tuplet start bracket"
 msgstr "¥¿¥×¥ì¥Ã¥È³«»Ï¥Ö¥é¥±¥Ã¥È¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: time-signature-engraver.cc:49
-msgid "lost in time:"
-msgstr "Çï»Ò¤Ë̤¤¤Þ¤·¤¿:"
-
-#: time-signature-engraver.cc:50 translator-group.cc:419
-#: translator-group.cc:428
-#, fuzzy, c-format
-msgid "can't find: `%s'"
-msgstr "¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-
 #: timing-translator.cc:36
 msgid "conflicting timing request"
 msgstr "Çï»Ò¤ÎÍ׵᤬¶¥¹ç¤·¤Þ¤¹"
@@ -786,31 +788,41 @@ msgstr "
 msgid "This is the other timing request"
 msgstr ""
 
-#: timing-translator.cc:79
+#: timing-translator.cc:65
 #, c-format
 msgid "barcheck failed at: %s"
 msgstr "¾®Àá¥Á¥§¥Ã¥¯¤¬¼ºÇÔ: %s"
 
-#: translator-ctors.cc:41
+#: translator-ctors.cc:40
 #, c-format
 msgid "unknown translator: `%s'"
 msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
 
-#: translator-group.cc:82 translator-group.cc:95
+#: translator-def.cc:96
 msgid "Program has no such type"
 msgstr "¥×¥í¥°¥é¥à¤Ë¤Ï¤½¤ÎÍͤʥ¿¥¤¥×¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: translator-group.cc:86 translator-group.cc:101
+#: translator-def.cc:102
 #, c-format
 msgid "Already contains: `%s'"
 msgstr "´û¤Ë´Þ¤ó¤Ç¤¤¤Þ¤¹: `%s'"
 
-#: translator-group.cc:213
+#: translator-def.cc:103
+#, fuzzy, c-format
+msgid "Not adding translator: `%s'"
+msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
+
+#: translator-def.cc:215
+#, fuzzy, c-format
+msgid "can't find: `%s'"
+msgstr "¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
+
+#: translator-group.cc:142
 #, fuzzy, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr "`%2$s' ¤Ë¸Æ¤Ð¤ì¤¿ `%1$s' ¤¬¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó"
 
-#: translator-group.cc:325
+#: translator-group.cc:246
 #, fuzzy, c-format
 msgid "can't find or create: `%s'"
 msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
@@ -819,173 +831,198 @@ msgstr "
 msgid "no one to print a volta bracket"
 msgstr "volta ¥Ö¥é¥±¥Ã¥È¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: parser.yy:59
+#: parser.yy:61
 #, c-format
 msgid "Oldest supported input version: %s"
 msgstr "°ìÈָŤ¤ÆþÎϲÄǽ¥Ð¡¼¥¸¥ç¥ó: %s"
 
-#: parser.yy:426
-msgid "Need a translator group for a context"
-msgstr "¥³¥ó¥Æ¥­¥¹¥È¤Ë¤Ï¥È¥é¥ó¥¹¥ì¡¼¥¿¥°¥ë¡¼¥×¤¬É¬ÍפǤ¹"
-
-#: parser.yy:441
+#: parser.yy:447
 msgid "Wrong type for property value"
 msgstr "°À­ÃͤؤΥ¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
 
-#: parser.yy:626
+#: parser.yy:633
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr "·«¤êÊÖ¤·¤è¤ê¤âÁªÂò»è¤¬Â¿¤¤¡£Ä¶²áʬ¤ò¼Î¤Æ¤Þ¤¹¡£"
 
-#: parser.yy:666
+#: parser.yy:673
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:671
+#: parser.yy:678
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:971
+#: parser.yy:1015
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:981
+#: parser.yy:1025
 msgid "Can't specify direction for this request"
 msgstr "¤³¤ÎÍ×µá¤ËÂФ¹¤ëÊý¸þ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
 
-#: parser.yy:1073
+#: parser.yy:1117
 #, c-format
 msgid "Expecting %d arguments"
 msgstr ""
 
-#: parser.yy:1089
+#: parser.yy:1133
 msgid "Must have 2 arguments for duration"
 msgstr ""
 
-#: parser.yy:1096 parser.yy:1104 parser.yy:1339
+#: parser.yy:1140 parser.yy:1148 parser.yy:1383
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "²Î»ì¤Ï Lyric ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
 
-#: parser.yy:1245 parser.yy:1265
+#: parser.yy:1289 parser.yy:1309
 #, c-format
 msgid "not a duration: %d"
 msgstr "²»Ä¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %d"
 
-#: parser.yy:1274
+#: parser.yy:1318
 msgid "Have to be in Note mode for notes"
 msgstr "²»Éä¤Ï Note ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
 
-#: parser.yy:1352
+#: parser.yy:1396
 msgid "Have to be in Chord mode for chords"
 msgstr "¥³¡¼¥É¤Ï Chord ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
 
-#: parser.yy:1513 parser.yy:1531
+#: parser.yy:1558 parser.yy:1576
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1517
+#: parser.yy:1562
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:158
+#: lexer.ll:159
 msgid "EOF found inside a comment"
 msgstr "¥³¥á¥ó¥ÈÆâ¤Ë EOF ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
 
-#: lexer.ll:172
+#: lexer.ll:173
 msgid "\\maininput disallowed outside init files"
 msgstr "½é´ü²½¥Õ¥¡¥¤¥ë¤Î³°¤Ç¤Ï \\maininput ¤òµ­½Ò¤Ç¤­¤Þ¤»¤ó"
 
-#: lexer.ll:196
+#: lexer.ll:197
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "̤ÄêµÁ¤Î¼±ÊÌ»Ò: `%s'"
 
 #. backup rule
-#: lexer.ll:201
+#: lexer.ll:202
 msgid "Missing end quote"
 msgstr "½ªÎ»¥¯¥ª¡¼¥È¤¬¤¢¤ê¤Þ¤»¤ó"
 
 #. backup rule
-#: lexer.ll:223 lexer.ll:227
+#: lexer.ll:224 lexer.ll:228
 msgid "white expected"
 msgstr "¶õÇò¤¬É¬ÍפǤ¹"
 
-#: lexer.ll:235
+#: lexer.ll:236
 msgid "Can't evaluate Scheme in safe mode"
 msgstr "°ÂÁ´¥â¡¼¥É¤Ç¤Ï Scheme ¤Îɾ²Á¤ò¤Ç¤­¤Þ¤»¤ó"
 
-#: lexer.ll:431
+#: lexer.ll:432
 #, c-format
 msgid "invalid character: `%c'"
 msgstr "̵¸ú¤Êʸ»ú: `%c'"
 
-#: lexer.ll:508
+#: lexer.ll:512
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×ʸ»úÎó: `\\%s'"
 
-#: lexer.ll:594
+#: lexer.ll:598
 #, c-format
 msgid "incorrect mudela version: %s (%s, %s)"
 msgstr "´Ö°ã¤Ã¤¿ mudela ¥Ð¡¼¥¸¥ç¥ó: %s (%s, %s)"
 
-#: lexer.ll:595
+#: lexer.ll:599
 msgid "Consider converting the input with the convert-mudela script"
 msgstr ""
 
-#: main.cc:91
+#: main.cc:92
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr "Àµ³Î¤Ê²»Ä¹¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£Îã: a4*385/384"
 
-#: main.cc:94
+#: main.cc:95
 msgid "ACC[:MINOR]"
 msgstr "ACC[:MINOR]"
 
-#: main.cc:94
+#: main.cc:95
 msgid "set key: ACC +sharps/-flats; :1 minor"
 msgstr "Ä´¤òÀßÄê: ACC +¥·¥ã¡¼¥×/-¥Õ¥é¥Ã¥È :1 Ã»Ä´"
 
-#: main.cc:95
+#: main.cc:96
 #, fuzzy
-msgid "don't output tuplets or double dots, smallest is 32"
+msgid "don't output tuplets, double dots or rests, smallest is 32"
 msgstr "ÉäÅÀ¤äÊ£ÉäÅÀ¤ò¤Ê¤¯¤¹¤è¤¦»î¤ß¤Þ¤¹¡¢ºÇ¾®¤Ï 32"
 
-#: main.cc:96
+#: main.cc:97
 msgid "set FILE as default output"
 msgstr "¥Ç¥Õ¥©¥ë¥È½ÐÎϤȤ·¤Æ FILE ¤òÀßÄꤹ¤ë"
 
-#: main.cc:97
+#: main.cc:98
 msgid "don't output tuplets"
 msgstr ""
 
-#: main.cc:98
+#: main.cc:99
 msgid "be quiet"
 msgstr "ÀŤ«¤Ë¤·¤Þ¤¹"
 
-#: main.cc:99
+#: main.cc:100
+msgid "don't output rests or skips"
+msgstr ""
+
+#: main.cc:101
 msgid "DUR"
 msgstr "DUR"
 
-#: main.cc:99
+#: main.cc:101
 msgid "set smallest duration"
 msgstr "²»Ä¹¤òºÇ¾®¤ËÀßÄꤷ¤Þ¤¹"
 
-#: main.cc:102
+#: main.cc:104
 msgid "be verbose"
 msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹"
 
-#: main.cc:104
+#: main.cc:106
 msgid "assume no double dotted notes"
 msgstr "Ê£ÉäÅÀ²»Éä¤ò̵¤¯¤¹¤è¤¦»î¤ß¤Þ¤¹"
 
-#: main.cc:111
+#: main.cc:113
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]"
 
-#: main.cc:113
+#: main.cc:115
 msgid "Translate MIDI-file to mudela"
 msgstr "MIDI ¥Õ¥¡¥¤¥ë¤ò mudela ¤ËÊÑ´¹¤·¤Þ¤¹"
 
+#: main.cc:129
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr ""
+
+#: main.cc:131
+#, c-format
+msgid "no_rests: %d\n"
+msgstr ""
+
+#: main.cc:133
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr ""
+
+#: main.cc:135
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr ""
+
+#: main.cc:138
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr ""
+
 #: midi-parser.cc:64
 msgid "zero length string encountered"
 msgstr "Ťµ¥¼¥í¤Îʸ»úÎ󤬸½¤ï¤ì¤Þ¤·¤¿"
@@ -1079,11 +1116,11 @@ msgstr "
 msgid "Settling columns..."
 msgstr "¥«¥é¥à¤ò·èÄꤷ¤Þ¤¹..."
 
-#: mudela-staff.cc:178
+#: mudela-staff.cc:209
 msgid "% MIDI copyright:"
 msgstr "% MIDI copyright:"
 
-#: mudela-staff.cc:179
+#: mudela-staff.cc:210
 msgid "% MIDI instrument:"
 msgstr "% MIDI instrument:"
 
@@ -1106,6 +1143,25 @@ msgstr "% Automatically generated"
 msgid "% from input file: "
 msgstr "% from input file: "
 
+#~ msgid "Interpretation context with empty type"
+#~ msgstr "¶õ¥¿¥¤¥×¤Î²ò¼á¥³¥ó¥Æ¥­¥¹¥È"
+
+#~ msgid "No bar engraver found.  Ignoring repeats."
+#~ msgstr "¾®À᤬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£È¿Éü¤ò̵»ë¤·¤Þ¤¹¡£"
+
+#, fuzzy
+#~ msgid "can't find both ends of %s"
+#~ msgstr "%s ¤Îξü¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+
+#~ msgid "slur"
+#~ msgstr "¥¹¥é¡¼"
+
+#~ msgid "lost in time:"
+#~ msgstr "Çï»Ò¤Ë̤¤¤Þ¤·¤¿:"
+
+#~ msgid "Need a translator group for a context"
+#~ msgstr "¥³¥ó¥Æ¥­¥¹¥È¤Ë¤Ï¥È¥é¥ó¥¹¥ì¡¼¥¿¥°¥ë¡¼¥×¤¬É¬ÍפǤ¹"
+
 #~ msgid "Debug output disabled.  Compiled with NPRINT."
 #~ msgstr ""
 #~ "¥Ç¥Ð¥Ã¥°½ÐÎϤ¬Ìµ¸ú¤Ë¤µ¤ì¤Æ¤¤¤Þ¤¹¡£NPRINT ¤Ä¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿¡£"
index 156ac55f372e718def1c4ba66cb3fbd4ab4c0a5b..4a1243f8024a667c37c12c6ed35df0573f3eff79 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-07-24 22:01+0200\n"
+"POT-Creation-Date: 2000-09-17 12:01+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -99,54 +99,55 @@ msgstr ""
 msgid "Error parsing AFM file"
 msgstr ""
 
-#: all-font-metrics.cc:149 lookup.cc:80
+#: all-font-metrics.cc:151 lookup.cc:80
 #, c-format
 msgid "can't find font: `%s'"
 msgstr ""
 
-#: all-font-metrics.cc:150
+#: all-font-metrics.cc:152
 msgid "Loading default font"
 msgstr ""
 
-#: all-font-metrics.cc:167
+#: all-font-metrics.cc:169
 #, c-format
 msgid "can't find default font: `%s'"
 msgstr ""
 
-#: all-font-metrics.cc:168 includable-lexer.cc:50 lookup.cc:81 scores.cc:109
+#: all-font-metrics.cc:170 includable-lexer.cc:50 lookup.cc:81 scores.cc:109
 #, c-format
 msgid "(search path: `%s')"
 msgstr ""
 
-#: all-font-metrics.cc:169
+#: all-font-metrics.cc:171
 msgid "Giving up"
 msgstr ""
 
 #: auto-change-iterator.cc:43 change-iterator.cc:60
+#: part-combine-music-iterator.cc:85
 msgid "Can't switch translators, I'm there already"
 msgstr ""
 
-#: beam-engraver.cc:75 beam-engraver.cc:91
+#: beam-engraver.cc:76 beam-engraver.cc:109
 msgid "can't find start of beam"
 msgstr ""
 
-#: beam-engraver.cc:120
+#: beam-engraver.cc:138
 msgid "already have a beam"
 msgstr ""
 
-#: beam-engraver.cc:177
+#: beam-engraver.cc:202
 msgid "unterminated beam"
 msgstr ""
 
-#: beam-engraver.cc:210 chord-tremolo-engraver.cc:172
+#: beam-engraver.cc:240 chord-tremolo-engraver.cc:176
 msgid "stem must have Rhythmic structure"
 msgstr ""
 
-#: beam-engraver.cc:221
+#: beam-engraver.cc:251
 msgid "stem doesn't fit in beam"
 msgstr ""
 
-#: beam-engraver.cc:222
+#: beam-engraver.cc:252
 msgid "beam was started here"
 msgstr ""
 
@@ -154,7 +155,7 @@ msgstr ""
 msgid "beam has less than two stems"
 msgstr ""
 
-#: beam.cc:510
+#: beam.cc:511
 msgid "weird beam vertical offset"
 msgstr ""
 
@@ -190,17 +191,17 @@ msgstr ""
 msgid "no one to print a tremolos"
 msgstr ""
 
-#: chord.cc:152
+#: chord.cc:162
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr ""
 
-#: chord.cc:376
+#: chord.cc:386
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
-#: clef-engraver.cc:167
+#: clef-engraver.cc:165
 msgid "unknown clef type"
 msgstr ""
 
@@ -233,19 +234,19 @@ msgstr ""
 msgid "NaN"
 msgstr ""
 
-#: dynamic-engraver.cc:184 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:192 span-dynamic-performer.cc:87
 msgid "can't find start of (de)crescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:203
+#: dynamic-engraver.cc:213
 msgid "already have a crescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:204
+#: dynamic-engraver.cc:214
 msgid "already have a decrescendo"
 msgstr ""
 
-#: dynamic-engraver.cc:289
+#: dynamic-engraver.cc:303
 msgid "unterminated (de)crescendo"
 msgstr ""
 
@@ -292,7 +293,7 @@ msgstr ""
 msgid "can't find file: `%s'"
 msgstr ""
 
-#: key-engraver.cc:92 key-performer.cc:54
+#: key-engraver.cc:101 key-performer.cc:54
 msgid "FIXME: key change merge"
 msgstr ""
 
@@ -324,11 +325,15 @@ msgstr ""
 msgid "Non-matching braces in text `%s', adding braces"
 msgstr ""
 
-#: lyric-phrasing-engraver.cc:147
-msgid "lyrics found without matching notehead ... aligning on self"
+#: lyric-phrasing-engraver.cc:245
+msgid "lyrics found without any matching notehead"
+msgstr ""
+
+#: lyric-phrasing-engraver.cc:250
+msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:75 main.cc:92
+#: main.cc:75 main.cc:93
 msgid "enable debugging output"
 msgstr ""
 
@@ -340,7 +345,7 @@ msgstr ""
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr ""
 
-#: main.cc:77 main.cc:93
+#: main.cc:77 main.cc:94
 msgid "this help"
 msgstr ""
 
@@ -352,7 +357,7 @@ msgstr ""
 msgid "add DIR to search path"
 msgstr ""
 
-#: main.cc:79 main.cc:96
+#: main.cc:79 main.cc:97
 msgid "FILE"
 msgstr ""
 
@@ -384,7 +389,7 @@ msgstr ""
 msgid "inhibit file output naming and exporting"
 msgstr ""
 
-#: main.cc:85 main.cc:100
+#: main.cc:85 main.cc:102
 msgid "don't timestamp the output"
 msgstr ""
 
@@ -392,7 +397,7 @@ msgstr ""
 msgid "switch on experimental features"
 msgstr ""
 
-#: main.cc:87 main.cc:101
+#: main.cc:87 main.cc:103
 msgid "print version number"
 msgstr ""
 
@@ -400,40 +405,43 @@ msgstr ""
 msgid "verbose"
 msgstr ""
 
-#: main.cc:89 main.cc:103
+#: main.cc:89 main.cc:105
 msgid "show warranty and copyright"
 msgstr ""
 
-#: main.cc:105
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:107
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr ""
 
-#: main.cc:107
+#: main.cc:109
 msgid "Typeset music and or play MIDI from FILE"
 msgstr ""
 
-#: main.cc:111
+#: main.cc:113
 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:116 main.cc:117
+#: main.cc:118 main.cc:119
 msgid "Options:"
 msgstr ""
 
-#: main.cc:121
+#: main.cc:123
 msgid "This binary was compiled with the following options:"
 msgstr ""
 
-#: main.cc:120 main.cc:140
+#: main.cc:122 main.cc:142
 #, c-format
 msgid "Report bugs to %s"
 msgstr ""
 
-#: main.cc:53 main.cc:148
+#: main.cc:54 main.cc:150
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -441,17 +449,17 @@ msgid ""
 "certain conditions.  Invoke as `%s --warranty' for more information.\n"
 msgstr ""
 
-#: main.cc:60 main.cc:155 main.cc:167
+#: main.cc:61 main.cc:157 main.cc:169
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr ""
 
 #. GNU GNU?
-#: main.cc:165
+#: main.cc:167
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr ""
 
-#: main.cc:69 main.cc:173
+#: main.cc:70 main.cc:175
 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"
@@ -490,11 +498,7 @@ msgstr ""
 msgid "Error syncing file (disk full?)"
 msgstr ""
 
-#: music-output-def.cc:51
-msgid "Interpretation context with empty type"
-msgstr ""
-
-#: music-output-def.cc:78
+#: music-output-def.cc:71
 #, c-format
 msgid "can't find `%s' context"
 msgstr ""
@@ -504,21 +508,21 @@ msgstr ""
 msgid "Transposition by %s makes accidental larger than two"
 msgstr ""
 
-#: my-lily-lexer.cc:118
+#: my-lily-lexer.cc:124
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr ""
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "error at EOF: %s"
 msgstr ""
 
-#: midi-score-parser.cc:94 my-lily-parser.cc:55
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
 msgid "Parsing..."
 msgstr ""
 
-#: my-lily-parser.cc:63
+#: my-lily-parser.cc:55
 msgid "Braces don't match"
 msgstr ""
 
@@ -539,6 +543,22 @@ msgstr ""
 msgid "Outputting Score, defined at: "
 msgstr ""
 
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:104
+#, c-format
+msgid "I'm one myself: `%s'"
+msgstr ""
+
+#: part-combine-music-iterator.cc:107
+#, c-format
+msgid "none of these in my family: `%s'"
+msgstr ""
+
 #: performance.cc:50
 msgid "Track ... "
 msgstr ""
@@ -568,29 +588,20 @@ msgstr ""
 msgid "can't find start of piano pedal: %s"
 msgstr ""
 
-#: property-engraver.cc:128
+#: property-engraver.cc:131
 msgid "Wrong type for property"
 msgstr ""
 
-#: repeat-engraver.cc:253
-msgid "No bar engraver found.  Ignoring repeats."
-msgstr ""
-
-#: request-chord-iterator.cc:72
+#: request-chord-iterator.cc:93
 #, c-format
 msgid "Junking request: `%s'"
 msgstr ""
 
-#: request-chord-iterator.cc:75
+#: request-chord-iterator.cc:96
 #, c-format
 msgid "Huh?  Not a Request: `%s'"
 msgstr ""
 
-#: request-iterator.cc:20
-#, c-format
-msgid "Junking music: `%s'"
-msgstr ""
-
 #: rest-collision.cc:159
 msgid "too many colliding rests"
 msgstr ""
@@ -599,7 +610,7 @@ msgstr ""
 msgid "too many notes for rest collision"
 msgstr ""
 
-#: score-engraver.cc:151
+#: score-engraver.cc:149
 #, c-format
 msgid "unbound spanner `%s'"
 msgstr ""
@@ -617,7 +628,7 @@ msgstr ""
 msgid "Errors found/*, not processing score*/"
 msgstr ""
 
-#: score.cc:100
+#: score.cc:101
 #, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr ""
@@ -636,38 +647,38 @@ msgstr ""
 msgid "Now processing: `%s'"
 msgstr ""
 
-#: script-engraver.cc:65
+#: script-engraver.cc:66
 #, c-format
 msgid "Don't know how to interpret articulation `%s'"
 msgstr ""
 
 #. this shouldn't happen, but let's continue anyway.
-#: separation-item.cc:48
+#: separation-item.cc:47
 msgid "Separation_item:  I've been drinking too much"
 msgstr ""
 
-#: sequential-music-iterator.cc:83
+#: sequential-music-iterator.cc:35
 msgid "Must stop before this music ends"
 msgstr ""
 
-#: slur-engraver.cc:82
-msgid "unterminated slur"
+#: simple-music-iterator.cc:36
+#, c-format
+msgid "Junking music: `%s'"
 msgstr ""
 
-#: slur-engraver.cc:98
-#, c-format
-msgid "can't find both ends of %s"
+#: slur-engraver.cc:89
+msgid "unterminated slur"
 msgstr ""
 
-#: slur-engraver.cc:98
-msgid "slur"
+#: slur-engraver.cc:104
+msgid "can't find start of slur"
 msgstr ""
 
 #: slur.cc:48
 msgid "Putting slur over rest.  Ignoring."
 msgstr ""
 
-#: slur.cc:122
+#: slur.cc:324
 msgid "Slur over rest?"
 msgstr ""
 
@@ -707,16 +718,6 @@ msgstr ""
 msgid "no one to print a tuplet start bracket"
 msgstr ""
 
-#: time-signature-engraver.cc:49
-msgid "lost in time:"
-msgstr ""
-
-#: time-signature-engraver.cc:50 translator-group.cc:419
-#: translator-group.cc:428
-#, c-format
-msgid "can't find: `%s'"
-msgstr ""
-
 #: timing-translator.cc:36
 msgid "conflicting timing request"
 msgstr ""
@@ -725,31 +726,41 @@ msgstr ""
 msgid "This is the other timing request"
 msgstr ""
 
-#: timing-translator.cc:79
+#: timing-translator.cc:65
 #, c-format
 msgid "barcheck failed at: %s"
 msgstr ""
 
-#: translator-ctors.cc:41
+#: translator-ctors.cc:40
 #, c-format
 msgid "unknown translator: `%s'"
 msgstr ""
 
-#: translator-group.cc:82 translator-group.cc:95
+#: translator-def.cc:96
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-group.cc:86 translator-group.cc:101
+#: translator-def.cc:102
 #, c-format
 msgid "Already contains: `%s'"
 msgstr ""
 
-#: translator-group.cc:213
+#: translator-def.cc:103
+#, c-format
+msgid "Not adding translator: `%s'"
+msgstr ""
+
+#: translator-def.cc:215
+#, c-format
+msgid "can't find: `%s'"
+msgstr ""
+
+#: translator-group.cc:142
 #, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr ""
 
-#: translator-group.cc:325
+#: translator-group.cc:246
 #, c-format
 msgid "can't find or create: `%s'"
 msgstr ""
@@ -758,172 +769,197 @@ msgstr ""
 msgid "no one to print a volta bracket"
 msgstr ""
 
-#: parser.yy:59
+#: parser.yy:61
 #, c-format
 msgid "Oldest supported input version: %s"
 msgstr ""
 
-#: parser.yy:426
-msgid "Need a translator group for a context"
-msgstr ""
-
-#: parser.yy:441
+#: parser.yy:447
 msgid "Wrong type for property value"
 msgstr ""
 
-#: parser.yy:626
+#: parser.yy:633
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:666
+#: parser.yy:673
 msgid "Second argument must be a symbol"
 msgstr ""
 
-#: parser.yy:671
+#: parser.yy:678
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:971
+#: parser.yy:1015
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:981
+#: parser.yy:1025
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1073
+#: parser.yy:1117
 #, c-format
 msgid "Expecting %d arguments"
 msgstr ""
 
-#: parser.yy:1089
+#: parser.yy:1133
 msgid "Must have 2 arguments for duration"
 msgstr ""
 
-#: parser.yy:1096 parser.yy:1104 parser.yy:1339
+#: parser.yy:1140 parser.yy:1148 parser.yy:1383
 msgid "Have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:1245 parser.yy:1265
+#: parser.yy:1289 parser.yy:1309
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
-#: parser.yy:1274
+#: parser.yy:1318
 msgid "Have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:1352
+#: parser.yy:1396
 msgid "Have to be in Chord mode for chords"
 msgstr ""
 
-#: parser.yy:1513 parser.yy:1531
+#: parser.yy:1558 parser.yy:1576
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1517
+#: parser.yy:1562
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:158
+#: lexer.ll:159
 msgid "EOF found inside a comment"
 msgstr ""
 
-#: lexer.ll:172
+#: lexer.ll:173
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:196
+#: lexer.ll:197
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:201
+#: lexer.ll:202
 msgid "Missing end quote"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:223 lexer.ll:227
+#: lexer.ll:224 lexer.ll:228
 msgid "white expected"
 msgstr ""
 
-#: lexer.ll:235
+#: lexer.ll:236
 msgid "Can't evaluate Scheme in safe mode"
 msgstr ""
 
-#: lexer.ll:431
+#: lexer.ll:432
 #, c-format
 msgid "invalid character: `%c'"
 msgstr ""
 
-#: lexer.ll:508
+#: lexer.ll:512
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr ""
 
-#: lexer.ll:594
+#: lexer.ll:598
 #, c-format
 msgid "incorrect mudela version: %s (%s, %s)"
 msgstr ""
 
-#: lexer.ll:595
+#: lexer.ll:599
 msgid "Consider converting the input with the convert-mudela script"
 msgstr ""
 
-#: main.cc:91
+#: main.cc:92
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr ""
 
-#: main.cc:94
+#: main.cc:95
 msgid "ACC[:MINOR]"
 msgstr ""
 
-#: main.cc:94
+#: main.cc:95
 msgid "set key: ACC +sharps/-flats; :1 minor"
 msgstr ""
 
-#: main.cc:95
-msgid "don't output tuplets or double dots, smallest is 32"
+#: main.cc:96
+msgid "don't output tuplets, double dots or rests, smallest is 32"
 msgstr ""
 
-#: main.cc:96
+#: main.cc:97
 msgid "set FILE as default output"
 msgstr ""
 
-#: main.cc:97
+#: main.cc:98
 msgid "don't output tuplets"
 msgstr ""
 
-#: main.cc:98
+#: main.cc:99
 msgid "be quiet"
 msgstr ""
 
-#: main.cc:99
+#: main.cc:100
+msgid "don't output rests or skips"
+msgstr ""
+
+#: main.cc:101
 msgid "DUR"
 msgstr ""
 
-#: main.cc:99
+#: main.cc:101
 msgid "set smallest duration"
 msgstr ""
 
-#: main.cc:102
+#: main.cc:104
 msgid "be verbose"
 msgstr ""
 
-#: main.cc:104
+#: main.cc:106
 msgid "assume no double dotted notes"
 msgstr ""
 
-#: main.cc:111
+#: main.cc:113
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr ""
 
-#: main.cc:113
+#: main.cc:115
 msgid "Translate MIDI-file to mudela"
 msgstr ""
 
+#: main.cc:129
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr ""
+
+#: main.cc:131
+#, c-format
+msgid "no_rests: %d\n"
+msgstr ""
+
+#: main.cc:133
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr ""
+
+#: main.cc:135
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr ""
+
+#: main.cc:138
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr ""
+
 #: midi-parser.cc:64
 msgid "zero length string encountered"
 msgstr ""
@@ -1016,11 +1052,11 @@ msgstr ""
 msgid "Settling columns..."
 msgstr ""
 
-#: mudela-staff.cc:178
+#: mudela-staff.cc:209
 msgid "% MIDI copyright:"
 msgstr ""
 
-#: mudela-staff.cc:179
+#: mudela-staff.cc:210
 msgid "% MIDI instrument:"
 msgstr ""
 
@@ -1039,5 +1075,6 @@ msgid "% Automatically generated"
 msgstr ""
 
 #: mudela-stream.cc:97
+#, c-format
 msgid "% from input file: "
 msgstr ""
index d906ebf66d88429db06ff27cd35cc6197660fbac..e0f7d4173c78d771345ed476ea2b5790264570a2 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 1.3.59\n"
-"POT-Creation-Date: 2000-07-24 22:01+0200\n"
+"POT-Creation-Date: 2000-09-17 12:01+0200\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"
@@ -108,54 +108,55 @@ msgstr "kan teken niet vinden genaamd: `%s'"
 msgid "Error parsing AFM file"
 msgstr "Fout bij ontleden AFM bestand"
 
-#: all-font-metrics.cc:149 lookup.cc:80
+#: all-font-metrics.cc:151 lookup.cc:80
 #, c-format
 msgid "can't find font: `%s'"
 msgstr "kan font niet vinden: `%s'"
 
-#: all-font-metrics.cc:150
+#: all-font-metrics.cc:152
 msgid "Loading default font"
 msgstr "Laad verstek font"
 
-#: all-font-metrics.cc:167
+#: all-font-metrics.cc:169
 #, c-format
 msgid "can't find default font: `%s'"
 msgstr "kan verstekfont niet vinden: `%s'"
 
-#: all-font-metrics.cc:168 includable-lexer.cc:50 lookup.cc:81 scores.cc:109
+#: all-font-metrics.cc:170 includable-lexer.cc:50 lookup.cc:81 scores.cc:109
 #, c-format
 msgid "(search path: `%s')"
 msgstr "(zoekpad: `%s')"
 
-#: all-font-metrics.cc:169
+#: all-font-metrics.cc:171
 msgid "Giving up"
 msgstr "Geef op"
 
 #: auto-change-iterator.cc:43 change-iterator.cc:60
+#: part-combine-music-iterator.cc:85
 msgid "Can't switch translators, I'm there already"
 msgstr "Kan niet wisselen van vertaler, ben al hier"
 
-#: beam-engraver.cc:75 beam-engraver.cc:91
+#: beam-engraver.cc:76 beam-engraver.cc:109
 msgid "can't find start of beam"
 msgstr "kan start van waardestreep niet vinden"
 
-#: beam-engraver.cc:120
+#: beam-engraver.cc:138
 msgid "already have a beam"
 msgstr "heb al een waardestreep"
 
-#: beam-engraver.cc:177
+#: beam-engraver.cc:202
 msgid "unterminated beam"
 msgstr "onbeëindigde waardestreep"
 
-#: beam-engraver.cc:210 chord-tremolo-engraver.cc:172
+#: beam-engraver.cc:240 chord-tremolo-engraver.cc:176
 msgid "stem must have Rhythmic structure"
 msgstr "stok moet Ritmische structuur hebben"
 
-#: beam-engraver.cc:221
+#: beam-engraver.cc:251
 msgid "stem doesn't fit in beam"
 msgstr "stok past niet in waardestreep"
 
-#: beam-engraver.cc:222
+#: beam-engraver.cc:252
 msgid "beam was started here"
 msgstr "waardestreep werd hier gestart"
 
@@ -163,7 +164,7 @@ msgstr "waardestreep werd hier gestart"
 msgid "beam has less than two stems"
 msgstr "waardestreep heeft minder dan twee stokken"
 
-#: beam.cc:510
+#: beam.cc:511
 msgid "weird beam vertical offset"
 msgstr "rare verticale waardestreep verplaatsing"
 
@@ -199,17 +200,17 @@ msgstr "onbe
 msgid "no one to print a tremolos"
 msgstr "niemand om tremolos af te drukken"
 
-#: chord.cc:152
+#: chord.cc:162
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr "ongeldige aftrek: maakt geen deel uit van accoord: %s"
 
-#: chord.cc:376
+#: chord.cc:386
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr "ongeldige inversie toon: geen onderdeel van accoord: %s"
 
-#: clef-engraver.cc:167
+#: clef-engraver.cc:165
 msgid "unknown clef type"
 msgstr "onbekend type sleutel"
 
@@ -244,19 +245,19 @@ msgstr "kan geheugen controle niet zetten!"
 msgid "NaN"
 msgstr "NaN"
 
-#: dynamic-engraver.cc:184 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:192 span-dynamic-performer.cc:87
 msgid "can't find start of (de)crescendo"
 msgstr "kan start van (de)crescendo niet vinden"
 
-#: dynamic-engraver.cc:203
+#: dynamic-engraver.cc:213
 msgid "already have a crescendo"
 msgstr "heb al een crescendo"
 
-#: dynamic-engraver.cc:204
+#: dynamic-engraver.cc:214
 msgid "already have a decrescendo"
 msgstr "heb al een decrescendo"
 
-#: dynamic-engraver.cc:289
+#: dynamic-engraver.cc:303
 msgid "unterminated (de)crescendo"
 msgstr "onbeëindigd (de)crescendo"
 
@@ -305,7 +306,7 @@ msgstr "verkeerd type identifier, verwachtte: `%s'"
 msgid "can't find file: `%s'"
 msgstr "kan bestand niet vinden: `%s'"
 
-#: key-engraver.cc:92 key-performer.cc:54
+#: key-engraver.cc:101 key-performer.cc:54
 msgid "FIXME: key change merge"
 msgstr "MAAKME: toonsoort sleutel samenvoeging"
 
@@ -337,11 +338,15 @@ msgstr "Breek af"
 msgid "Non-matching braces in text `%s', adding braces"
 msgstr "Ongepaarde haakjes in tekst `%s', voeg haakjes toe"
 
-#: lyric-phrasing-engraver.cc:147
-msgid "lyrics found without matching notehead ... aligning on self"
-msgstr "liedteksten gevonden zonder nootbolletje ... uitlijnen op zelf"
+#: lyric-phrasing-engraver.cc:245
+msgid "lyrics found without any matching notehead"
+msgstr "liedteksten gevonden zonder bijbehorend nootbolletje"
+
+#: lyric-phrasing-engraver.cc:250
+msgid "Huh? Melismatic note found to have associated lyrics."
+msgstr "Huh?  Melismatische noot blijkt bijbehorende liedtekst te hebben."
 
-#: main.cc:75 main.cc:92
+#: main.cc:75 main.cc:93
 msgid "enable debugging output"
 msgstr "maak ontluis uitvoer mogelijk"
 
@@ -353,7 +358,7 @@ msgstr "EXT"
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr "gebruik uitvoer formaat EXT (scm, ps, tex of as)"
 
-#: main.cc:77 main.cc:93
+#: main.cc:77 main.cc:94
 msgid "this help"
 msgstr "deze hulp"
 
@@ -365,7 +370,7 @@ msgstr "DIR"
 msgid "add DIR to search path"
 msgstr "voeg DIR toe aan zoekpad"
 
-#: main.cc:79 main.cc:96
+#: main.cc:79 main.cc:97
 msgid "FILE"
 msgstr "BESTAND"
 
@@ -397,7 +402,7 @@ msgstr "toon veranderingen voor relatieve mode"
 msgid "inhibit file output naming and exporting"
 msgstr "verbied naamgeving van uitvoer bestand en exportering"
 
-#: main.cc:85 main.cc:100
+#: main.cc:85 main.cc:102
 msgid "don't timestamp the output"
 msgstr "geen tijdsstempel in de uitvoer"
 
@@ -405,7 +410,7 @@ msgstr "geen tijdsstempel in de uitvoer"
 msgid "switch on experimental features"
 msgstr "zet experimentele kunstjes aan"
 
-#: main.cc:87 main.cc:101
+#: main.cc:87 main.cc:103
 msgid "print version number"
 msgstr "druk versienummer af"
 
@@ -413,20 +418,23 @@ msgstr "druk versienummer af"
 msgid "verbose"
 msgstr "breedsprakig"
 
-#: main.cc:89 main.cc:103
+#: main.cc:89 main.cc:105
 msgid "show warranty and copyright"
 msgstr "toon garantie en auteursrechten"
 
-#: main.cc:105
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:107
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Gebruik: %s [OPTIE]... [BESTAND]..."
 
-#: main.cc:107
+#: main.cc:109
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "Zet muziek en of speel MIDI van BESTAND"
 
-#: main.cc:111
+#: main.cc:113
 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"
@@ -436,22 +444,22 @@ msgstr ""
 "uitgaande van een hoog niveau beschrijving bestand.  LilyPond \n"
 "maakt deel uit van het GNU Project.\n"
 
-#: main.cc:116 main.cc:117
+#: main.cc:118 main.cc:119
 msgid "Options:"
 msgstr "Opties:"
 
-#: main.cc:121
+#: main.cc:123
 msgid "This binary was compiled with the following options:"
 msgstr "Dit programma is gecompileerd met de volgende instellingen:"
 
-#: main.cc:120 main.cc:140
+#: main.cc:122 main.cc:142
 #, 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>"
 
-#: main.cc:53 main.cc:148
+#: main.cc:54 main.cc:150
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -463,17 +471,17 @@ msgstr ""
 "onder bepaalde voorwaarden.  Roep aan als `%s --warranty' voor meer\n"
 "informatie.\n"
 
-#: main.cc:60 main.cc:155 main.cc:167
+#: main.cc:61 main.cc:157 main.cc:169
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s "
 
 #. GNU GNU?
-#: main.cc:165
+#: main.cc:167
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr "GNU LilyPond -- De Muziekzetter van het GNU Project"
 
-#: main.cc:69 main.cc:173
+#: main.cc:70 main.cc:175
 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"
@@ -525,11 +533,7 @@ msgstr "rare toonhoogte"
 msgid "Error syncing file (disk full?)"
 msgstr "Fout by synchroniseren van bestand (disk vol?)"
 
-#: music-output-def.cc:51
-msgid "Interpretation context with empty type"
-msgstr "Vertolk context met leeg type"
-
-#: music-output-def.cc:78
+#: music-output-def.cc:71
 #, c-format
 msgid "can't find `%s' context"
 msgstr "kan `%s' context niet vinden"
@@ -539,21 +543,21 @@ msgstr "kan `%s' context niet vinden"
 msgid "Transposition by %s makes accidental larger than two"
 msgstr "Transponering van %s geeft tripel kruizen/mollen"
 
-#: my-lily-lexer.cc:118
+#: my-lily-lexer.cc:124
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "Identifier naam is een sleutelwoord: `%s'"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "error at EOF: %s"
 msgstr "fout bij EOF: %s"
 
-#: midi-score-parser.cc:94 my-lily-parser.cc:55
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
 msgid "Parsing..."
 msgstr "Ontleden..."
 
-#: my-lily-parser.cc:63
+#: my-lily-parser.cc:55
 msgid "Braces don't match"
 msgstr "Haakjes paren niet"
 
@@ -574,6 +578,20 @@ msgstr "Voorbewerken van elementen..."
 msgid "Outputting Score, defined at: "
 msgstr "Uitvoer van Score, gedefinieerd op: "
 
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:104
+msgid "I'm one myself: `%s'"
+msgstr "Ben er zelf een: `%s'"
+
+#: part-combine-music-iterator.cc:107
+msgid "none of these in my family: `%s'"
+msgstr "geen van deze in mijn gezin: `%s'"
+
 #: performance.cc:50
 msgid "Track ... "
 msgstr "Spoor ... "
@@ -603,29 +621,20 @@ msgstr "MIDI uitvoer naar %s..."
 msgid "can't find start of piano pedal: %s"
 msgstr "kan start van piano pedaal niet vinden: %s"
 
-#: property-engraver.cc:128
+#: property-engraver.cc:131
 msgid "Wrong type for property"
 msgstr "Verkeerd type voor property"
 
-#: repeat-engraver.cc:253
-msgid "No bar engraver found.  Ignoring repeats."
-msgstr "Geen bar engraver gevonden.  Negeer herhalingen."
-
-#: request-chord-iterator.cc:72
+#: request-chord-iterator.cc:93
 #, c-format
 msgid "Junking request: `%s'"
 msgstr "Schroot verzoek: `%s'"
 
-#: request-chord-iterator.cc:75
+#: request-chord-iterator.cc:96
 #, c-format
 msgid "Huh?  Not a Request: `%s'"
 msgstr "Huh?  Geen Request: `%s'"
 
-#: request-iterator.cc:20
-#, c-format
-msgid "Junking music: `%s'"
-msgstr "Schroot muziek: `%s'"
-
 #: rest-collision.cc:159
 msgid "too many colliding rests"
 msgstr "te veel botsende rusten"
@@ -634,7 +643,7 @@ msgstr "te veel botsende rusten"
 msgid "too many notes for rest collision"
 msgstr "te veel noten voor bosting met rusten"
 
-#: score-engraver.cc:151
+#: score-engraver.cc:149
 #, c-format
 msgid "unbound spanner `%s'"
 msgstr "ongebonden spanner `%s'"
@@ -652,12 +661,13 @@ msgstr "Heb muziek nodig in een partituur"
 msgid "Errors found/*, not processing score*/"
 msgstr "Fouten gevonden, /*verwerk partituur niet */"
 
-#: score.cc:100
+#: score.cc:101
 #, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr "duur: %.2f seconden"
 
 #: scores.cc:34
+#, c-format
 msgid "Writing dependency file: `%s'..."
 msgstr "Schijven van afhankelijkheden bestand: `%s'..."
 
@@ -666,41 +676,42 @@ msgid "Score contains errors; will not process it"
 msgstr "Partituur bevat fouten; zal hem niet verwerken"
 
 #: scores.cc:124
+#, c-format
 msgid "Now processing: `%s'"
 msgstr "Nu wordt verwerkt: `%s'"
 
-#: script-engraver.cc:65
+#: script-engraver.cc:66
 #, c-format
 msgid "Don't know how to interpret articulation `%s'"
 msgstr "Weet niet hoe articulatie te vertolken `%s'"
 
 #. this shouldn't happen, but let's continue anyway.
-#: separation-item.cc:48
+#: separation-item.cc:47
 msgid "Separation_item:  I've been drinking too much"
 msgstr "Separation_item:  Ik heb te veel gedronken"
 
-#: sequential-music-iterator.cc:83
+#: sequential-music-iterator.cc:35
 msgid "Must stop before this music ends"
 msgstr "Moet stoppen voordat deze muziek ophoudt"
 
-#: slur-engraver.cc:82
+#: simple-music-iterator.cc:36
+#, c-format
+msgid "Junking music: `%s'"
+msgstr "Schroot muziek: `%s'"
+
+#: slur-engraver.cc:89
 msgid "unterminated slur"
 msgstr "onbeëindigde bindingsboog"
 
-#: slur-engraver.cc:98
-#, c-format
-msgid "can't find both ends of %s"
-msgstr "kan niet beide uiteinden vinden van %s"
-
-#: slur-engraver.cc:98
-msgid "slur"
-msgstr "bindingsboog"
+#: slur-engraver.cc:104
+msgid "can't find start of slur"
+msgstr "kan start van bindingsboog niet vinden"
 
 #: slur.cc:48
 msgid "Putting slur over rest.  Ignoring."
 msgstr "Zet bindingsboog over rust.  Negeer."
 
-#: slur.cc:122
+#: slur.cc:324
 msgid "Slur over rest?"
 msgstr "Boogje over rust?"
 
@@ -741,16 +752,6 @@ msgstr "eenzame overbinding"
 msgid "no one to print a tuplet start bracket"
 msgstr "niemand om een x-ool start haak af te drukken"
 
-#: time-signature-engraver.cc:49
-msgid "lost in time:"
-msgstr "verdwaald in de tijd:"
-
-#: time-signature-engraver.cc:50 translator-group.cc:419
-#: translator-group.cc:428
-#, c-format
-msgid "can't find: `%s'"
-msgstr "kan niet vinden: `%s'"
-
 #: timing-translator.cc:36
 msgid "conflicting timing request"
 msgstr "strijdig timing verzoek"
@@ -759,31 +760,41 @@ msgstr "strijdig timing verzoek"
 msgid "This is the other timing request"
 msgstr "Dit is het andere timing verzoek"
 
-#: timing-translator.cc:79
+#: timing-translator.cc:65
 #, c-format
 msgid "barcheck failed at: %s"
 msgstr "maatstreep controle gefaald op: %s"
 
-#: translator-ctors.cc:41
+#: translator-ctors.cc:40
 #, c-format
 msgid "unknown translator: `%s'"
 msgstr "onbekende papier varanderlijke: `%s'"
 
-#: translator-group.cc:82 translator-group.cc:95
+#: translator-def.cc:96
 msgid "Program has no such type"
 msgstr "Programma heeft geen dergelijk type"
 
-#: translator-group.cc:86 translator-group.cc:101
+#: translator-def.cc:102
 #, c-format
 msgid "Already contains: `%s'"
 msgstr "Bevat reeds: `%s'"
 
-#: translator-group.cc:213
+#: translator-def.cc:103
+#, c-format
+msgid "Not adding translator: `%s'"
+msgstr "Voeg translator niet toe: `%s'"
+
+#: translator-def.cc:215
+#, c-format
+msgid "can't find: `%s'"
+msgstr "kan niet vinden: `%s'"
+
+#: translator-group.cc:142
 #, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr "kan niet vinden of scheppen `%s' genaamd `%s'"
 
-#: translator-group.cc:325
+#: translator-group.cc:246
 #, c-format
 msgid "can't find or create: `%s'"
 msgstr "kan niet vinden of scheppen: `%s'"
@@ -792,173 +803,198 @@ msgstr "kan niet vinden of scheppen: `%s'"
 msgid "no one to print a volta bracket"
 msgstr "niemand om een volta haak af te drukken"
 
-#: parser.yy:59
+#: parser.yy:61
 #, c-format
 msgid "Oldest supported input version: %s"
 msgstr "Oudst ondersteunde invoerversie: %s"
 
-#: parser.yy:426
-msgid "Need a translator group for a context"
-msgstr "Heb een translator groep nodig voor een context"
-
-#: parser.yy:441
+#: parser.yy:447
 msgid "Wrong type for property value"
 msgstr "Verkeerd type voor property waarde"
 
-#: parser.yy:626
+#: parser.yy:633
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 "Meer alternatieven dan herhalingen.  Schroot overvloedige alternatieven."
 
-#: parser.yy:666
+#: parser.yy:673
 msgid "Second argument must be a symbol"
 msgstr "Tweede argument moet een symbool zijn"
 
-#: parser.yy:671
+#: parser.yy:678
 msgid "First argument must be a procedure taking 1 argument"
 msgstr "Eerste argument moet een procedure zijn met 1 argument"
 
-#: parser.yy:971
+#: parser.yy:1015
 msgid "Expecting string as script definition"
 msgstr "Verwacht string voor script definitie"
 
-#: parser.yy:981
+#: parser.yy:1025
 msgid "Can't specify direction for this request"
 msgstr "Kan richting voor dit verzoek niet specificeren"
 
-#: parser.yy:1073
+#: parser.yy:1117
 #, c-format
 msgid "Expecting %d arguments"
 msgstr "Verwacht %d argumenten"
 
-#: parser.yy:1089
+#: parser.yy:1133
 msgid "Must have 2 arguments for duration"
 msgstr "Moet 2 argumenten hebben voor duur"
 
-#: parser.yy:1096 parser.yy:1104 parser.yy:1339
+#: parser.yy:1140 parser.yy:1148 parser.yy:1383
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "Moet in Lyric modus zijn voor liedteksten"
 
-#: parser.yy:1245 parser.yy:1265
+#: parser.yy:1289 parser.yy:1309
 #, c-format
 msgid "not a duration: %d"
 msgstr "geen duur: %d"
 
-#: parser.yy:1274
+#: parser.yy:1318
 msgid "Have to be in Note mode for notes"
 msgstr "Moet in Note modus zijn voor noten"
 
-#: parser.yy:1352
+#: parser.yy:1396
 msgid "Have to be in Chord mode for chords"
 msgstr "Moet in Chord modus zijn voor accoorden"
 
-#: parser.yy:1513 parser.yy:1531
+#: parser.yy:1558 parser.yy:1576
 msgid "need integer number arg"
 msgstr "heb integer getal arg nogig"
 
-#: parser.yy:1517
+#: parser.yy:1562
 msgid "Must be positive integer"
 msgstr "Moet positieve integer zijn"
 
-#: lexer.ll:158
+#: lexer.ll:159
 msgid "EOF found inside a comment"
 msgstr "EOF gevonden in een kommentaar"
 
-#: lexer.ll:172
+#: lexer.ll:173
 msgid "\\maininput disallowed outside init files"
 msgstr "\\maininput niet toegestaan buiten init bestanden"
 
-#: lexer.ll:196
+#: lexer.ll:197
 #, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "verkeerde of ongedefiniëerde identifier: `%s'"
 
 #. backup rule
-#: lexer.ll:201
+#: lexer.ll:202
 msgid "Missing end quote"
 msgstr "Aanhalingsteken sluiten mist"
 
 #. backup rule
-#: lexer.ll:223 lexer.ll:227
+#: lexer.ll:224 lexer.ll:228
 msgid "white expected"
 msgstr "wit verwacht"
 
-#: lexer.ll:235
+#: lexer.ll:236
 msgid "Can't evaluate Scheme in safe mode"
 msgstr "Kan Scheme niet evalueren in veilige modus"
 
-#: lexer.ll:431
+#: lexer.ll:432
 #, c-format
 msgid "invalid character: `%c'"
 msgstr "ongeldig teken: `%c'"
 
-#: lexer.ll:508
+#: lexer.ll:512
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "onbekende ontsnapte string: `\\%s'"
 
-#: lexer.ll:594
+#: lexer.ll:598
 #, c-format
 msgid "incorrect mudela version: %s (%s, %s)"
 msgstr "verkeerde mudela versie: %s (%s, %s)"
 
-#: lexer.ll:595
+#: lexer.ll:599
 msgid "Consider converting the input with the convert-mudela script"
 msgstr "Overweeg de invoer te converteren met het convert-mudela script"
 
-#: main.cc:91
+#: main.cc:92
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr "schrijf exacte duren, bijv.: a4*385/384"
 
-#: main.cc:94
+#: main.cc:95
 msgid "ACC[:MINOR]"
 msgstr "ACC[:MINEUR]"
 
-#: main.cc:94
+#: main.cc:95
 msgid "set key: ACC +sharps/-flats; :1 minor"
 msgstr "zet toonsoort: ACC +kruizen/-mollen; :1 mineur"
 
-#: main.cc:95
-msgid "don't output tuplets or double dots, smallest is 32"
+#: main.cc:96
+msgid "don't output tuplets, double dots or rests, smallest is 32"
 msgstr "maak geen n-olen of dubbel gepunkteerd, kortste is 32"
 
-#: main.cc:96
+#: main.cc:97
 msgid "set FILE as default output"
 msgstr "zet BESTAND als verstek uitvoer"
 
-#: main.cc:97
+#: main.cc:98
 msgid "don't output tuplets"
 msgstr "maak geen n-olen"
 
-#: main.cc:98
+#: main.cc:99
 msgid "be quiet"
 msgstr "wees stil"
 
-#: main.cc:99
+#: main.cc:100
+msgid "don't output rests or skips"
+msgstr "maak geen rusten of skips"
+
+#: main.cc:101
 msgid "DUR"
 msgstr "DUUR"
 
-#: main.cc:99
+#: main.cc:101
 msgid "set smallest duration"
 msgstr "zet kortste duur"
 
-#: main.cc:102
+#: main.cc:104
 msgid "be verbose"
 msgstr "wees breedsprakig"
 
-#: main.cc:104
+#: main.cc:106
 msgid "assume no double dotted notes"
 msgstr "ga niet uit van dubbel gepunteerde noten"
 
-#: main.cc:111
+#: main.cc:113
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "Gebruik: %s [OPTIE]... [BESTAND]"
 
-#: main.cc:113
+#: main.cc:115
 msgid "Translate MIDI-file to mudela"
 msgstr "Vertaal MIDI-bestand naar mudela"
 
+#: main.cc:129
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr ""
+
+#: main.cc:131
+#, c-format
+msgid "no_rests: %d\n"
+msgstr ""
+
+#: main.cc:133
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr ""
+
+#: main.cc:135
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr ""
+
+#: main.cc:138
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr ""
+
 #: midi-parser.cc:64
 msgid "zero length string encountered"
 msgstr "string van lengte nul tegengekomen"
@@ -1051,11 +1087,11 @@ msgstr "Kwantificeren van kolommen..."
 msgid "Settling columns..."
 msgstr "Zetten van kolommen..."
 
-#: mudela-staff.cc:178
+#: mudela-staff.cc:209
 msgid "% MIDI copyright:"
 msgstr "% MIDI copyright:"
 
-#: mudela-staff.cc:179
+#: mudela-staff.cc:210
 msgid "% MIDI instrument:"
 msgstr "% MIDI instrument:"
 
@@ -1074,5 +1110,6 @@ msgid "% Automatically generated"
 msgstr "% Automatisch gegenereerd"
 
 #: mudela-stream.cc:97
+#, c-format
 msgid "% from input file: "
 msgstr "% van invoerbestand: "
index 49b8baccbed64d05106f3f3759a633130bc73314..c3f3dcae8f6add84e8d3658ff7630759e883f13a 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: 2000-07-24 21:55+0200\n"
+"POT-Creation-Date: 2000-09-17 12:01+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: August S.Sigov <august@infran.ru>\n"
 "Language-Team: Russian <ru@li.org>\n"
@@ -63,7 +63,7 @@ msgid "can't map file"
 msgstr "ÎÅ ÍÏÇÕ ÏÔÏÂÒÁÚÉÔØ ÆÁÊÌ × ÐÁÍÑÔØ"
 
 #: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:111
-#: paper-stream.cc:25 scores.cc:37 simple-file-storage.cc:44 text-stream.cc:22
+#: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:22
 #, c-format
 msgid "can't open file: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ: `%s'"
@@ -99,54 +99,55 @@ msgstr "
 msgid "Error parsing AFM file"
 msgstr "ïÛÉÂËÁ ÐÒÉ ÁÎÁÌÉÚÅ ÆÁÊÌÁ AFM"
 
-#: all-font-metrics.cc:149 lookup.cc:80
+#: all-font-metrics.cc:151 lookup.cc:80
 #, c-format
 msgid "can't find font: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÛÒÉÆÔ: `%s'"
 
-#: all-font-metrics.cc:150
+#: all-font-metrics.cc:152
 msgid "Loading default font"
 msgstr "úÁÇÒÕÖÁÀ ÛÒÉÆÔ ÐÏ ÕÍÏÌÞÁÎÉÀ"
 
-#: all-font-metrics.cc:167
+#: all-font-metrics.cc:169
 #, c-format
 msgid "can't find default font: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÛÒÉÆÔ ÐÏ ÕÍÏÌÞÁÎÉÀ: `%s'"
 
-#: all-font-metrics.cc:168 includable-lexer.cc:50 lookup.cc:81 scores.cc:108
+#: all-font-metrics.cc:170 includable-lexer.cc:50 lookup.cc:81 scores.cc:109
 #, c-format
 msgid "(search path: `%s')"
 msgstr "(ÐÕÔØ ÐÏÉÓËÁ: `%s')"
 
-#: all-font-metrics.cc:169
+#: all-font-metrics.cc:171
 msgid "Giving up"
 msgstr "óÄÁÀÓØ"
 
 #: auto-change-iterator.cc:43 change-iterator.cc:60
+#: part-combine-music-iterator.cc:85
 msgid "Can't switch translators, I'm there already"
 msgstr "îÅ ÍÏÇÕ ÐÅÒÅËÌÀÞÉÔØ ÐÅÒÅ×ÏÄÞÉËÏ×, Ñ ÕÖÅ ÔÁÍ"
 
-#: beam-engraver.cc:75 beam-engraver.cc:91
+#: beam-engraver.cc:76 beam-engraver.cc:109
 msgid "can't find start of beam"
 msgstr "ÞÔÏ-ÔÏ ÎÅ ÎÁÊÄÕ ÎÁÞÁÌÏ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ"
 
-#: beam-engraver.cc:120
+#: beam-engraver.cc:138
 msgid "already have a beam"
 msgstr "ÕÖÅ ÉÍÅÅÍ ÇÒÕÐÐÕ ÛÔÉÌÅÊ"
 
-#: beam-engraver.cc:177
+#: beam-engraver.cc:202
 msgid "unterminated beam"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÇÒÕÐÐÉÒÏ×ËÁ ÛÔÉÌÅÊ"
 
-#: beam-engraver.cc:210 chord-tremolo-engraver.cc:172
+#: beam-engraver.cc:240 chord-tremolo-engraver.cc:176
 msgid "stem must have Rhythmic structure"
 msgstr "ÛÔÉÌØ ÄÏÌÖÅΠÉÍÅÔØ ÒÉÔÍÏ×ÕÀ ÓÔÒÕËÔÕÒÕ"
 
-#: beam-engraver.cc:221
+#: beam-engraver.cc:251
 msgid "stem doesn't fit in beam"
 msgstr "ÛÔÉÌØ ÎÅ ×ÌÅÚÁÅÔ × ÇÒÕÐÐÉÒÏ×ËÕ"
 
-#: beam-engraver.cc:222
+#: beam-engraver.cc:252
 msgid "beam was started here"
 msgstr "ÇÒÕÐÐÉÒÏ×ËÁ ÎÁÞÉÎÁÌÁÓØ ÚÄÅÓØ"
 
@@ -154,7 +155,7 @@ msgstr "
 msgid "beam has less than two stems"
 msgstr "ÇÒÕÐÐÉÒÏ×ËÁ ÍÅÎÅÅ Ä×ÕÈ ÛÔÉÌÅÊ"
 
-#: beam.cc:510
+#: beam.cc:511
 msgid "weird beam vertical offset"
 msgstr "ÄÉËÏÅ ×ÅÒÔÉËÁÌØÎÏÅ ÓÍÅÝÅÎÉÅ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ"
 
@@ -191,17 +192,17 @@ msgstr "
 msgid "no one to print a tremolos"
 msgstr "ÎÅËÏÍÕ ÒÉÓÏ×ÁÔØ ÓËÏÂÕ ÐÏ×ÔÏÒÁ"
 
-#: chord.cc:152
+#: chord.cc:162
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr "ÎÅ×ÅÒÎÏÅ ×ÙÞÉÔÁÎÉÅ: ÎÅ ÞÁÓÔØ ÁËËÏÒÄÁ: %s"
 
-#: chord.cc:376
+#: chord.cc:386
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
-#: clef-engraver.cc:167
+#: clef-engraver.cc:165
 msgid "unknown clef type"
 msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÔÉРËÌÀÞÁ"
 
@@ -235,19 +236,19 @@ msgstr "
 msgid "NaN"
 msgstr "NaN"
 
-#: dynamic-engraver.cc:184 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:192 span-dynamic-performer.cc:87
 msgid "can't find start of (de)crescendo"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÎÁÞÁÌÏ (ÄÅ)ËÒÅÝÅÎÄÏ"
 
-#: dynamic-engraver.cc:203
+#: dynamic-engraver.cc:213
 msgid "already have a crescendo"
 msgstr "ËÒÅÝÅÎÄÏ ÕÖÅ ÅÓÔØ"
 
-#: dynamic-engraver.cc:204
+#: dynamic-engraver.cc:214
 msgid "already have a decrescendo"
 msgstr "ÄÅËÒÅÝÅÎÄÏ ÕÖÅ ÅÓÔØ"
 
-#: dynamic-engraver.cc:289
+#: dynamic-engraver.cc:303
 msgid "unterminated (de)crescendo"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ (ÄÅ)ËÒÅÝÅÎÄÏ"
 
@@ -289,12 +290,12 @@ msgid "wrong identifier type, expected: `%s'"
 msgstr "ÎÅ×ÅÒÎÙÊ ÔÉРÐÅÒÅÍÅÎÎÏÊ, ÏÖÉÄÁÌÓÑ: `%s'"
 
 #: includable-lexer.cc:48 lily-guile.cc:117 midi-score-parser.cc:24
-#: scores.cc:107 scores.cc:113
+#: scores.cc:108 scores.cc:114
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÆÁÊÌ: `%s'"
 
-#: key-engraver.cc:92 key-performer.cc:54
+#: key-engraver.cc:101 key-performer.cc:54
 msgid "FIXME: key change merge"
 msgstr "éóðòá÷øíåîñ: ÓÌÉÑÎÉÅ ÓÍÅÎÙ ËÌÀÞÁ"
 
@@ -326,11 +327,15 @@ msgstr "
 msgid "Non-matching braces in text `%s', adding braces"
 msgstr "æÉÇÕÒÎÙÅ ÓËÏÂËÉ × ÔÅËÓÔÅ `%s' ÎÅ ÓÏ×ÐÁÄÁÀÔ, ÄÏÂÁ×ÌÑÀ ÓËÏÂËÉ"
 
-#: lyric-phrasing-engraver.cc:147
-msgid "lyrics found without matching notehead ... aligning on self"
+#: lyric-phrasing-engraver.cc:245
+msgid "lyrics found without any matching notehead"
+msgstr ""
+
+#: lyric-phrasing-engraver.cc:250
+msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr ""
 
-#: main.cc:75 main.cc:92
+#: main.cc:75 main.cc:93
 msgid "enable debugging output"
 msgstr "×ËÌÀÞÉÔØ ×Ù×ÏÄ ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ"
 
@@ -343,7 +348,7 @@ msgstr "
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr "ÉÓÐÏÌØÚÏ×ÁÔØ ×ÙÈÏÄÎÏÊ ÆÏÒÍÁÔ òáóû"
 
-#: main.cc:77 main.cc:93
+#: main.cc:77 main.cc:94
 msgid "this help"
 msgstr "ÜÔÁ ÓÐÒÁ×ËÁ"
 
@@ -355,7 +360,7 @@ msgstr "
 msgid "add DIR to search path"
 msgstr "ÄÏÂÁ×ÉÔØ ëáô Ë ÐÕÔÉ ÐÏÉÓËÁ"
 
-#: main.cc:79 main.cc:96
+#: main.cc:79 main.cc:97
 msgid "FILE"
 msgstr "æáêì"
 
@@ -387,7 +392,7 @@ msgstr "
 msgid "inhibit file output naming and exporting"
 msgstr "ÓËÒÙÔØ ÉÍÅÎÏ×ÁÎÉÅ É ÜËÓÐÏÒÔ ×Ù×ÏÄÁ × ÆÁÊÌ"
 
-#: main.cc:85 main.cc:100
+#: main.cc:85 main.cc:102
 msgid "don't timestamp the output"
 msgstr "ÎÅ ÏÔÍÅÞÁÔØ ÄÁÔÕ É ×ÒÅÍÑ ×Ù×ÏÄÁ"
 
@@ -395,7 +400,7 @@ msgstr "
 msgid "switch on experimental features"
 msgstr "×ËÌÀÞÉÔØ ÜËÓÐÅÒÉÍÅÎÔÁÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ"
 
-#: main.cc:87 main.cc:101
+#: main.cc:87 main.cc:103
 msgid "print version number"
 msgstr "×Ù×ÏÄÉÔØ ÎÏÍÅÒ ×ÅÒÓÉÉ"
 
@@ -404,20 +409,23 @@ msgstr "
 msgid "verbose"
 msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ"
 
-#: main.cc:89 main.cc:103
+#: main.cc:89 main.cc:105
 msgid "show warranty and copyright"
 msgstr "ÐÏËÁÚÁÔØ ÇÁÒÁÎÔÉÀ É copyright"
 
-#: main.cc:105
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:107
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]..."
 
-#: main.cc:107
+#: main.cc:109
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "îÁÂÉÒÁÔØ ÍÕÚÙËÕ É/ÉÌÉ ÐÒÏÉÇÒÙ×ÁÔØ MIDI ÉÚ æáêìÁ"
 
-#: main.cc:111
+#: main.cc:113
 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"
@@ -427,20 +435,20 @@ msgstr ""
 "ÎÁ ÂÕÍÁÇÅ, ÉÓÐÏÌØÚÕÑ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÙÊ ÆÁÊÌ ÏÐÉÓÁÎÉÑ ÎÁ ××ÏÄÅ. Lilypond\n"
 "Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ ðÒÏÅËÔÁ GNU.\n"
 
-#: main.cc:116 main.cc:117
+#: main.cc:118 main.cc:119
 msgid "Options:"
 msgstr "ïÐÃÉÉ:"
 
-#: main.cc:121
+#: main.cc:123
 msgid "This binary was compiled with the following options:"
 msgstr "üÔÏÔ ÉÓÐÏÌÎÑÅÍÙÊ ÆÁÊÌ ÂÙÌ ÓÏÂÒÁΠÓÏ ÓÌÅÄÕÀÝÉÍÉ ÏÐÃÉÑÍÉ:"
 
-#: main.cc:120 main.cc:140
+#: main.cc:122 main.cc:142
 #, c-format
 msgid "Report bugs to %s"
 msgstr "óÏÏÂÝÁÊÔÅ Ï ÏÛÉÂËÁÈ ÐÏ %s"
 
-#: main.cc:53 main.cc:148
+#: main.cc:54 main.cc:150
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -452,17 +460,17 @@ msgstr ""
 "ÐÒÉ ÓÏÂÌÀÄÅÎÉÉ ÎÅËÏÔÏÒÙÈ ÕÓÌÏ×ÉÊ. ÷ÙÚÙ×ÁÊÔÅ ËÁË `%s --warranty' ÄÌÑ\n"
 "ÐÏÌÕÞÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n"
 
-#: main.cc:60 main.cc:155 main.cc:167
+#: main.cc:61 main.cc:157 main.cc:169
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "÷ÓÅ ÐÒÁ×Á ÚÁÝÉÝÅÎÙ (c) %s by"
 
 #. GNU GNU?
-#: main.cc:165
+#: main.cc:167
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr "GNU LilyPond -- îÁÂÏÒÝÉË ÍÕÚÙËÉ ðÒÏÅËÔÁ GNU"
 
-#: main.cc:69 main.cc:173
+#: main.cc:70 main.cc:175
 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"
@@ -501,11 +509,7 @@ msgstr "
 msgid "Error syncing file (disk full?)"
 msgstr "ïÛÉÂËÁ ÓÉÎÈÒÏÎÉÚÁÃÉÉ ÆÁÊÌÁ (ÄÉÓË ÐÅÒÅÐÏÌÎÅÎ?)"
 
-#: music-output-def.cc:51
-msgid "Interpretation context with empty type"
-msgstr ""
-
-#: music-output-def.cc:78
+#: music-output-def.cc:71
 #, c-format
 msgid "can't find `%s' context"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ËÏÎÔÅËÓÔ `%s'"
@@ -515,21 +519,21 @@ msgstr "
 msgid "Transposition by %s makes accidental larger than two"
 msgstr ""
 
-#: my-lily-lexer.cc:118
+#: my-lily-lexer.cc:124
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr "éÍÑ ËÏÍÁÎÄÙ Ñ×ÌÑÅÔÓÑ ËÌÀÞÅ×ÙÍ ÓÌÏ×ÏÍ: `%s'"
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "error at EOF: %s"
 msgstr "ÏÛÍÂËÁ × ËÏÎÃÅ ÆÁÊÌÁ: %s"
 
-#: midi-score-parser.cc:94 my-lily-parser.cc:55
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
 msgid "Parsing..."
 msgstr "òÁÚÂÉÒÁÀ..."
 
-#: my-lily-parser.cc:63
+#: my-lily-parser.cc:55
 msgid "Braces don't match"
 msgstr "æÉÇÕÒÎÙÅ ÓËÏÂËÉ ÎÅ ÓÏ×ÐÁÄÁÀÔ"
 
@@ -550,6 +554,22 @@ msgstr "
 msgid "Outputting Score, defined at: "
 msgstr ""
 
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:104
+#, fuzzy, c-format
+msgid "I'm one myself: `%s'"
+msgstr "ñ ÅÄÉÎÓÔ×ÅÎÎÙÊ"
+
+#: part-combine-music-iterator.cc:107
+#, fuzzy, c-format
+msgid "none of these in my family: `%s'"
+msgstr "ÏÎÉ ÍÎÅ ÎÅ ÒÏÄÓÔ×ÅÎÎÉËÉ"
+
 #: performance.cc:50
 msgid "Track ... "
 msgstr "äÏÒÏÖËÁ ..."
@@ -579,29 +599,20 @@ msgstr "
 msgid "can't find start of piano pedal: %s"
 msgstr "ÞÔÏ-ÔÏ ÎÅ ÎÁÊÄÕ ÎÁÞÁÌÏ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ"
 
-#: property-engraver.cc:128
+#: property-engraver.cc:131
 msgid "Wrong type for property"
 msgstr "îÅ×ÅÒÎÙÊ ÔÉРÄÌÑ Ó×ÏÊÓÔ×Á"
 
-#: repeat-engraver.cc:253
-msgid "No bar engraver found.  Ignoring repeats."
-msgstr ""
-
-#: request-chord-iterator.cc:72
+#: request-chord-iterator.cc:93
 #, c-format
 msgid "Junking request: `%s'"
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÚÁÐÒÏÓ: `%s'"
 
-#: request-chord-iterator.cc:75
+#: request-chord-iterator.cc:96
 #, c-format
 msgid "Huh?  Not a Request: `%s'"
 msgstr "á? îå úÁÐÒÏÓ: `%s'"
 
-#: request-iterator.cc:20
-#, c-format
-msgid "Junking music: `%s'"
-msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
-
 #: rest-collision.cc:159
 msgid "too many colliding rests"
 msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÎÁÌÅÚÁÀÝÉÈ ÐÁÕÚ"
@@ -610,7 +621,7 @@ msgstr "
 msgid "too many notes for rest collision"
 msgstr ""
 
-#: score-engraver.cc:151
+#: score-engraver.cc:149
 #, c-format
 msgid "unbound spanner `%s'"
 msgstr ""
@@ -628,58 +639,59 @@ msgstr ""
 msgid "Errors found/*, not processing score*/"
 msgstr "îÁÊÄÅÎÙ ÏÛÉÂËÉ/*, ÎÅ ÏÂÒÁÂÁÔÙ×ÁÀ ÎÏÔÙ*/"
 
-#: score.cc:100
+#: score.cc:101
 #, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr "ÚÁÔÒÁÞÅÎÎÏÅ ×ÒÅÍÑ: %.2f ÓÅËÕÎÄ"
 
 #: scores.cc:34
 #, fuzzy, c-format
-msgid "Writing dependency file: `%s'...\n"
+msgid "Writing dependency file: `%s'..."
 msgstr "úÁÐÉÓÙ×ÁÀ ÆÁÊÌ ÚÁ×ÉÓÉÍÏÓÔÅÊ: `%s'..."
 
-#: scores.cc:78
+#: scores.cc:79
 msgid "Score contains errors; will not process it"
 msgstr ""
 
-#: scores.cc:123
-#, c-format
-msgid "Now processing: `%s'\n"
-msgstr ""
+#: scores.cc:124
+#, fuzzy, c-format
+msgid "Now processing: `%s'"
+msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `\\%s'"
 
-#: script-engraver.cc:65
+#: script-engraver.cc:66
 #, c-format
 msgid "Don't know how to interpret articulation `%s'"
 msgstr ""
 
 #. this shouldn't happen, but let's continue anyway.
-#: separation-item.cc:48
+#: separation-item.cc:47
 #, fuzzy
 msgid "Separation_item:  I've been drinking too much"
 msgstr "Single_malt_grouping_item: Ñ ÌÉÛËÏÍ ÍÎÏÇÏ ×ÙÐÉÌ"
 
-#: sequential-music-iterator.cc:83
+#: sequential-music-iterator.cc:35
 msgid "Must stop before this music ends"
 msgstr ""
 
-#: slur-engraver.cc:82
+#: simple-music-iterator.cc:36
+#, c-format
+msgid "Junking music: `%s'"
+msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
+
+#: slur-engraver.cc:89
 msgid "unterminated slur"
 msgstr "ÎÅÚÁ×ÅÒÛÅÎÎÁÑ ÌÉÇÁ"
 
-#: slur-engraver.cc:98
-#, c-format
-msgid "can't find both ends of %s"
-msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÏÂÁ ËÏÎÃÁ Õ %s"
-
-#: slur-engraver.cc:98
-msgid "slur"
-msgstr "ÌÉÇÁ"
+#: slur-engraver.cc:104
+#, fuzzy
+msgid "can't find start of slur"
+msgstr "ÞÔÏ-ÔÏ ÎÅ ÎÁÊÄÕ ÎÁÞÁÌÏ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ"
 
 #: slur.cc:48
 msgid "Putting slur over rest.  Ignoring."
 msgstr "ìÉÇÁ ÎÁÄ ÐÁÕÚÏÊ. éÇÎÏÒÉÒÕÀ."
 
-#: slur.cc:122
+#: slur.cc:324
 msgid "Slur over rest?"
 msgstr "ìÉÇÁ ÎÁÄ ÐÁÕÚÏÊ?"
 
@@ -719,16 +731,6 @@ msgstr ""
 msgid "no one to print a tuplet start bracket"
 msgstr ""
 
-#: time-signature-engraver.cc:49
-msgid "lost in time:"
-msgstr ""
-
-#: time-signature-engraver.cc:50 translator-group.cc:419
-#: translator-group.cc:428
-#, c-format
-msgid "can't find: `%s'"
-msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ: `%s'"
-
 #: timing-translator.cc:36
 msgid "conflicting timing request"
 msgstr ""
@@ -737,31 +739,41 @@ msgstr ""
 msgid "This is the other timing request"
 msgstr ""
 
-#: timing-translator.cc:79
+#: timing-translator.cc:65
 #, c-format
 msgid "barcheck failed at: %s"
 msgstr ""
 
-#: translator-ctors.cc:41
+#: translator-ctors.cc:40
 #, c-format
 msgid "unknown translator: `%s'"
 msgstr ""
 
-#: translator-group.cc:82 translator-group.cc:95
+#: translator-def.cc:96
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-group.cc:86 translator-group.cc:101
+#: translator-def.cc:102
 #, c-format
 msgid "Already contains: `%s'"
 msgstr "õÖÅ ÓÏÄÅÒÖÉÔ: `%s'"
 
-#: translator-group.cc:213
+#: translator-def.cc:103
+#, c-format
+msgid "Not adding translator: `%s'"
+msgstr ""
+
+#: translator-def.cc:215
+#, c-format
+msgid "can't find: `%s'"
+msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ: `%s'"
+
+#: translator-group.cc:142
 #, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr ""
 
-#: translator-group.cc:325
+#: translator-group.cc:246
 #, c-format
 msgid "can't find or create: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÉÌÉ ÓÏÚÄÁÔØ: `%s'"
@@ -770,172 +782,198 @@ msgstr "
 msgid "no one to print a volta bracket"
 msgstr ""
 
-#: parser.yy:59
+#: parser.yy:61
 #, c-format
 msgid "Oldest supported input version: %s"
 msgstr ""
 
-#: parser.yy:426
-msgid "Need a translator group for a context"
-msgstr ""
-
-#: parser.yy:441
+#: parser.yy:447
 msgid "Wrong type for property value"
 msgstr ""
 
-#: parser.yy:626
+#: parser.yy:633
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:666
+#: parser.yy:673
 msgid "Second argument must be a symbol"
 msgstr "÷ÔÏÒÏÊ ÁÒÇÕÍÅÎÔ ÄÏÌÖÅΠÂÙÔØ ÓÉÍ×ÏÌÏÍ"
 
-#: parser.yy:671
+#: parser.yy:678
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:971
+#: parser.yy:1015
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:981
+#: parser.yy:1025
 msgid "Can't specify direction for this request"
 msgstr "îÅ ÍÏÇÕ ÕËÁÚÁÔØ ÎÁÐÒÁ×ÌÅÎÉÅ ÄÌÑ ÜÔÏÇÏ ÚÁÐÒÏÓÁ"
 
-#: parser.yy:1073
+#: parser.yy:1117
 #, c-format
 msgid "Expecting %d arguments"
 msgstr ""
 
-#: parser.yy:1089
+#: parser.yy:1133
 msgid "Must have 2 arguments for duration"
 msgstr ""
 
-#: parser.yy:1096 parser.yy:1104 parser.yy:1339
+#: parser.yy:1140 parser.yy:1148 parser.yy:1383
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "äÏÌÖÅΠÂÙÔØ × ìÉÒÉÞÅÓËÏÍ ÒÅÖÉÍÅ ÄÌÑ ÌÉÒÉËÉ"
 
-#: parser.yy:1245 parser.yy:1265
+#: parser.yy:1289 parser.yy:1309
 #, c-format
 msgid "not a duration: %d"
 msgstr "ÎÅ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ: %d"
 
-#: parser.yy:1274
+#: parser.yy:1318
 msgid "Have to be in Note mode for notes"
 msgstr "äÏÌÖÅΠÂÙÔØ × îÏÔÎÏÍ ÒÅÖÉÍÅ ÄÌÑ ÎÏÔ"
 
-#: parser.yy:1352
+#: parser.yy:1396
 msgid "Have to be in Chord mode for chords"
 msgstr "äÏÌÖÅΠÂÙÔØ × áËËÏÒÄÎÏÍ ÒÅÖÉÍÅ ÄÌÑ ÁËËÏÒÄÏ×"
 
-#: parser.yy:1513 parser.yy:1531
+#: parser.yy:1558 parser.yy:1576
 msgid "need integer number arg"
 msgstr ""
 
-#: parser.yy:1517
+#: parser.yy:1562
 msgid "Must be positive integer"
 msgstr ""
 
-#: lexer.ll:158
+#: lexer.ll:159
 msgid "EOF found inside a comment"
 msgstr "ëÏÎÅàÆÁÊÌÁ ×ÎÕÔÒÉ ËÏÍÍÅÎÔÁÒÉÑ"
 
-#: lexer.ll:172
+#: lexer.ll:173
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:196
+#: lexer.ll:197
 #, fuzzy, c-format
 msgid "wrong or undefined identifier: `%s'"
 msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÍÅÔËÁ/ËÏÍÁÎÄÁ: `%s'"
 
 #. backup rule
-#: lexer.ll:201
+#: lexer.ll:202
 msgid "Missing end quote"
 msgstr "ïÔÓÕÔÓ×ÕÅÔ ÚÁËÌÀÞÉÔÅÌØÎÁÑ ËÁ×ÙÞËÁ"
 
 #. backup rule
-#: lexer.ll:223 lexer.ll:227
+#: lexer.ll:224 lexer.ll:228
 msgid "white expected"
 msgstr "× ÔÏ ×ÒÅÍÑ ËÁË ÏÖÉÄÁÌÏÓØ"
 
-#: lexer.ll:235
+#: lexer.ll:236
 msgid "Can't evaluate Scheme in safe mode"
 msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÑÔØ ËÏÄ ÓÈÅÍÙ × ÂÅÚÏÐÁÓÎÏÍ ÒÅÖÉÍÅ"
 
-#: lexer.ll:431
+#: lexer.ll:432
 #, c-format
 msgid "invalid character: `%c'"
 msgstr "ÎÅ×ÅÒÎÙÊ ÓÉÍ×ÏÌ: `%c'"
 
-#: lexer.ll:508
+#: lexer.ll:512
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `\\%s'"
 
-#: lexer.ll:594
+#: lexer.ll:598
 #, c-format
 msgid "incorrect mudela version: %s (%s, %s)"
 msgstr "ÎÅ×ÅÒÎÁÑ ×ÅÒÓÉÑ mudela: %s (%s, %s)"
 
-#: lexer.ll:595
+#: lexer.ll:599
 msgid "Consider converting the input with the convert-mudela script"
 msgstr ""
 
-#: main.cc:91
+#: main.cc:92
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr ""
 
-#: main.cc:94
+#: main.cc:95
 msgid "ACC[:MINOR]"
 msgstr ""
 
-#: main.cc:94
+#: main.cc:95
 msgid "set key: ACC +sharps/-flats; :1 minor"
 msgstr ""
 
-#: main.cc:95
-msgid "don't output tuplets or double dots, smallest is 32"
+#: main.cc:96
+msgid "don't output tuplets, double dots or rests, smallest is 32"
 msgstr ""
 
-#: main.cc:96
+#: main.cc:97
 msgid "set FILE as default output"
 msgstr "ÕÓÔÁÎÏ×ÉÔØ æáêì ÄÌÑ ×Ù×ÏÄÁ ÐÏ ÕÍÏÌÞÁÎÉÀ"
 
-#: main.cc:97
+#: main.cc:98
 msgid "don't output tuplets"
 msgstr "ÎÅ ×Ù×ÏÄÉÔØ ÓËÏÂÙ ÔÒÉÏÌÅÊ"
 
-#: main.cc:98
+#: main.cc:99
 msgid "be quiet"
 msgstr "ÂÙÔØ ÍÏÌÞÁÌÉ×ÙÍ"
 
-#: main.cc:99
+#: main.cc:100
+#, fuzzy
+msgid "don't output rests or skips"
+msgstr "ÎÅ ×Ù×ÏÄÉÔØ ÓËÏÂÙ ÔÒÉÏÌÅÊ"
+
+#: main.cc:101
 msgid "DUR"
 msgstr "íáöïò"
 
-#: main.cc:99
+#: main.cc:101
 msgid "set smallest duration"
 msgstr "ÕÓÔÁÎÏ×ÉÔØ ÎÁÉÍÅÎØÛÕÀ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ"
 
-#: main.cc:102
+#: main.cc:104
 msgid "be verbose"
 msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ"
 
-#: main.cc:104
+#: main.cc:106
 msgid "assume no double dotted notes"
 msgstr ""
 
-#: main.cc:111
+#: main.cc:113
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]"
 
-#: main.cc:113
+#: main.cc:115
 msgid "Translate MIDI-file to mudela"
 msgstr "ôÒÁÎÓÌÉÒÏ×ÁÔØ MIDI-ÆÁÊÌ × mudela"
 
+#: main.cc:129
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr ""
+
+#: main.cc:131
+#, c-format
+msgid "no_rests: %d\n"
+msgstr ""
+
+#: main.cc:133
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr ""
+
+#: main.cc:135
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr ""
+
+#: main.cc:138
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr ""
+
 #: midi-parser.cc:64
 msgid "zero length string encountered"
 msgstr "×ÓÔÒÅÔÉÌÁÓØ ÓÔÒÏËÁ ÎÕÌÅ×ÏÊ ÄÌÉÎÙ"
@@ -1028,11 +1066,11 @@ msgstr ""
 msgid "Settling columns..."
 msgstr ""
 
-#: mudela-staff.cc:178
+#: mudela-staff.cc:209
 msgid "% MIDI copyright:"
 msgstr "% MIDI copyright:"
 
-#: mudela-staff.cc:179
+#: mudela-staff.cc:210
 msgid "% MIDI instrument:"
 msgstr "% MIDI ÉÎÓÔÒÕÍÅÎÔ:"
 
@@ -1055,6 +1093,12 @@ msgstr "% 
 msgid "% from input file: "
 msgstr "% ÉÚ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ: "
 
+#~ msgid "can't find both ends of %s"
+#~ msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÏÂÁ ËÏÎÃÁ Õ %s"
+
+#~ msgid "slur"
+#~ msgstr "ÌÉÇÁ"
+
 #~ msgid "No key name, assuming `C'"
 #~ msgstr "îÅÔ ÎÁÚ×ÁÎÉÑ ËÌÀÞÁ, ÐÏÄÒÁÚÕÍÅ×ÁÀ `C'"
 
index 366e497e7d777181a9ad7c9d5193a2960e0cefc8..83b85773831dc5c4668257c81c246f4ff3ffea1b 100644 (file)
 #  * beams (better use autobeam?)
 #  * more robust: try entertainer.etf (freenote)
 #  * dynamics
+#  * automatic `deletion' of invalid items
 #
 
+
 program_name = 'etf2ly'
 version = '@TOPLEVEL_VERSION@'
 if version == '@' + 'TOPLEVEL_VERSION' + '@':
@@ -343,14 +345,17 @@ class Measure:
                self.finale = []
                self.global_measure = None
                self.staff = None
+               self.valid = 1
                
        def add_finale_entry (self, entry):
                self.finale.append (entry)
 
+       def valid (self):
+               return self.valid
        def calculate (self):
                if len (self.finale) < 2:
                        sys.stderr.write ("Measure %d in staff %d  has incomplete information.\n" % (self.number, self.staff.number))
-                       
+                       self.valid = 0
                        return 
                        
                f0 = self.finale[0]
@@ -445,7 +450,7 @@ class Staff:
                last_clef = None
                gap = (0,1)
                for m in self.measures[1:]:
-                       if not m :
+                       if not m or not m.valid:
                                continue # ugh.
                        
                        g = m.global_measure
@@ -482,7 +487,7 @@ class Staff:
                        first_frame = None
                        gap = (0,1)
                        for m in self.measures[1:]:
-                               if not m:
+                               if not m or not m.valid:
                                        continue
                                
                                
@@ -657,7 +662,7 @@ class Etf_file:
                self.frames = [None]
                self.tuplets = [None]
                self.staffs = [None]
-               self.slurs = [None]
+               self.slur_dict = {}
                self.articulations = [None]
                self.syllables = [None]
                self.verses = [None]
@@ -760,12 +765,16 @@ class Etf_file:
                if m:
                        slurno = string.atoi (m.group (1))
 
-                       if len (self.slurs) == slurno:
-                               self.slurs.append (Slur (slurno))
+                       sl = None
+                       try:
+                               sl = self.slur_dict[slurno]
+                       except KeyError:
+                               sl = Slur (slurno)
+                               self.slur_dict[slurno] = sl
 
                        params = list (m.groups ()[1:])
                        params = map (string.atoi, params)
-                       self.slurs[-1].append_entry (params)
+                       sl.append_entry (params)
 
                return m        
        def try_GF(self, l):
@@ -859,9 +868,13 @@ class Etf_file:
                                if not m:
                                        continue
                                
-                               m.global_measure = self.measures[mno]
                                m.calculate()
-
+                               try:
+                                       m.global_measure = self.measures[mno]
+                               except IndexError:
+                                       sys.stderr.write ("non-existent global measure %d" % mno)
+                                       continue
+                               
                                frame_obj_list = [None]
                                for frno in m.frames:
                                        fr = self.frames[frno]
@@ -888,7 +901,7 @@ class Etf_file:
                for t in self.tuplets[1:]:
                        t.calculate (self.chords)
                        
-               for s in self.slurs [1:]:
+               for s in self.slur_dict.values():
                        s.calculate (self.chords)
                for s in self.articulations[1:]:
                        s.calculate (self.chords)
@@ -896,7 +909,15 @@ class Etf_file:
        def get_thread (self, startno, endno):
 
                thread = []
-               c = self.chords[startno]
+
+               c = None
+               try:
+                       c = self.chords[startno]
+               except IndexError:
+                       sys.stderr.write ("Huh? Frame has invalid bounds (%d,%d)\n" % (startno, endno))
+                       return []
+
+               
                while c and c.number () <> endno:
                        thread.append (c)
                        c = c.next
@@ -996,7 +1017,6 @@ for opt in options:
 
 identify()
 
-# header['tagline'] = 'Lily was here %s -- automatically converted from ABC' % version
 for f in files:
        if f == '-':
                f = ''