]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.87
authorfred <fred>
Tue, 26 Mar 2002 23:55:41 +0000 (23:55 +0000)
committerfred <fred>
Tue, 26 Mar 2002 23:55:41 +0000 (23:55 +0000)
72 files changed:
input/bugs/dynamic-switch.ly [new file with mode: 0644]
input/bugs/f.ly
input/bugs/voice-switch-slur.ly [new file with mode: 0644]
input/test/cue-notes.ly [new file with mode: 0644]
input/test/part-combine-score.ly
input/test/part-combine-staff.ly
input/test/voice-switch.ly [new file with mode: 0644]
input/test/volta.ly
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/global-translator.hh
lily/include/grace-iterator.hh
lily/include/interpretation-context-handle.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/sequential-music-iterator.hh
lily/include/simple-music-iterator.hh [new file with mode: 0644]
lily/include/simultaneous-music-iterator.hh
lily/include/time-scaled-music-iterator.hh
lily/include/unfolded-repeat-iterator.hh
lily/interpretation-context-handle.cc
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/sequential-music-iterator.cc
lily/simple-music-iterator.cc [new file with mode: 0644]
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/translator-group.cc
lily/unfolded-repeat-iterator.cc
lily/voice-devnull-engraver.cc
ly/engraver.ly
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

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-slur.ly b/input/bugs/voice-switch-slur.ly
new file mode 100644 (file)
index 0000000..f576f20
--- /dev/null
@@ -0,0 +1,21 @@
+\score{
+       \context Staff <
+               \context Voice=one\skip 1;
+               \context Voice=two\skip 1;
+               \context Voice=one \partcombine Voice
+                       \context Thread=one \notes\relative c'' {
+                               c4( c b )a 
+                               a( b c )d
+                       }
+                       \context Thread=two \notes\relative c'' {
+                               a4( c b )a
+                               a( b c )a
+                               
+                       }
+       >
+       \paper{
+               linewidth=140.\mm;
+       }
+}
+
+
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/input/test/voice-switch.ly b/input/test/voice-switch.ly
new file mode 100644 (file)
index 0000000..d515666
--- /dev/null
@@ -0,0 +1,21 @@
+\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 c2
+                               c2 c2
+                       }
+                       \context Thread=two \notes\relative c'' {
+                               b2 a4 () a
+                               a2 a4 () a
+                               
+                       }
+       >
+       \paper{
+               linewidth=140.\mm;
+       }
+}
+
+
index 443f79dfdef7519b6c896d4bbcdc51ba472536e5..48889cf91a22095b5e11509ec22a71db8cba21cb 100644 (file)
@@ -1,24 +1,42 @@
-\score { 
-  \context Voice \notes\relative c {
-    % Test of prima/secunda volta brackets in conjunction with 
-       % line breaks and special bars.
-       
-       c' d e f |
-       \repeat "volta" 2 { g a b c }
-       \alternative { { c b a g a g a g} { f e d c } } 
-       \repeat "volta" 2 { g a b c }
-       \alternative { { c b a g \break a g a g} { f e d c } } 
-       c' d e f |
-       \repeat "volta" 2 { g a b c }
-       \alternative { { c b a g \break a g a g \break a b a b } { f e d c } }
-       c' d e f |
-       \repeat "volta" 2 { g a b c }
-       \alternative { { c b a g } { f e d c \break a g a g} }
-       c' d e f |
-       \repeat "volta" 2 { g a b c }
-       \alternative { { c b a g a g a g} { f e d c \bar "|.";} }
-       
-  }
-  \paper { }  
-  \midi { }
-}
\ No newline at end of file
+
+voice4 = \notes {
+\clef bass;
+ \property Staff.instrument = "Bass"
+ \property Staff.instr = "B"
+ \time 4/4;  f,2 (   ) f,8    r8   f8    e8    
+\repeat  volta 2
+{
+ d8.    d16    e8.    f16    f8    c8    c16    c8. 
+}
+\alternative
+{
+    {   f,2 (   ) f,8    r8   f8    e8 ( \break   }
+    {   ) f,2.    r8   c16    c16      |
+    }
+}
+}
+voicedefault = \notes {
+ \property Staff.timeSignatureStyle="C"
+ \time 4/4; \key f; 
+ \tempo 4 = 200;
+}
+\score{
+        \notes <
+
+
+        \context Staff="4"
+        {
+            \$voicedefault
+            \$voice4 
+        }
+
+    >
+        \paper {
+            font_normal = 12.;
+            \translator {
+                 \StaffContext 
+                 \consists Instrument_name_engraver;
+            }
+        }
+}
+
index 0ae3021d4670172be651ba9e1abd56df4b90f4ed..cd4a350c85267b0d02cccd0afa940ce8417c2d43 100644 (file)
@@ -65,11 +65,13 @@ Auto_change_iterator::change_to (Music_iterator *it, String to_type,
     ; //    error (_ ("none of these in my family"));
 
 }
+
 Pitch_interrogate_req* spanish_inquisition; // nobody expects it
+
 void
-Auto_change_iterator::do_process_and_next (Moment m)
+Auto_change_iterator::process (Moment m)
 {
-  Music_wrapper_iterator::do_process_and_next (m);
+  Music_wrapper_iterator::process (m);
 
   if (!spanish_inquisition)
     spanish_inquisition = new Pitch_interrogate_req;
index 730e4adc8e3cb241ab121e0b302dabcdca7d7025..7bd04e1e89f79e2e52b486710f957fea7e276435 100644 (file)
@@ -24,7 +24,7 @@ Change_iterator::error (String reason)
   /*
     GUHG!
    */
-  String warn2= "Change_iterator::do_process_and_next (): " 
+  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_and_next (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_and_next (Moment m)
       }
   else
     error (_ ("none of these in my family"));
-  Music_iterator::do_process_and_next (m);
+  Simple_music_iterator::process (m);
 }
 
 
index 1fe1425527b42af1ef9a1e547c1fd6a7d9853ccc..0f86e33d98a77cd6899a22951ddaf4fc3bf73c19 100644 (file)
@@ -31,7 +31,7 @@ Chord_tremolo_iterator::Chord_tremolo_iterator()
 }
 
 void
-Chord_tremolo_iterator::do_process_and_next (Moment m)
+Chord_tremolo_iterator::process (Moment m)
 {
   if (!m)
     {
@@ -42,14 +42,14 @@ Chord_tremolo_iterator::do_process_and_next (Moment m)
        music_l_->origin ()->warning ( _("no one to print a tremolos"));
     }
 
-  child_iter_p_->process_and_next  (factor_ * m);
+  child_iter_p_->process (factor_ * 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 38241b8cf413cb1e6fc7b3fb06b16a646300a893..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_and_next (Moment m)
+Folded_repeat_iterator::process (Moment m)
 {
   if (!m)
     {
@@ -66,7 +66,7 @@ Folded_repeat_iterator::do_process_and_next (Moment m)
   
   if (main_iter_p_)
     {
-      main_iter_p_->process_and_next (m);
+      main_iter_p_->process (m);
       if (!main_iter_p_->ok ())
        leave_body ();
     }
@@ -78,7 +78,7 @@ Folded_repeat_iterator::do_process_and_next (Moment m)
   
   if (alternative_iter_p_)
     {
-      alternative_iter_p_->process_and_next (m - main_length_mom_);
+      alternative_iter_p_->process (m - main_length_mom_);
       if (!alternative_iter_p_->ok ())
        {
          delete alternative_iter_p_;
index 4993504d7bf8e0c284659714c19e533d3026f723..1713ce373637844343ec828a977c3c9b08e7d7b1 100644 (file)
@@ -6,11 +6,14 @@
   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
-#include "global-translator.hh"
-#include "music-iterator.hh"
 #include "debug.hh"
+#include "music.hh"
+#include "request.hh"
+#include "music-list.hh"
+#include "music-iterator.hh"
+#include "global-translator.hh"
 
-Global_translator::Global_translator()
+Global_translator::Global_translator ()
 {
 }
 
@@ -29,13 +32,12 @@ Global_translator::add_moment_to_process (Moment m)
   extra_mom_pq_.insert (m);
 }
 
-void
-Global_translator::modify_next (Moment &w)
+Moment
+Global_translator::sneaky_insert_extra_moment (Moment w)
 {
-  while (extra_mom_pq_.size() && 
-        extra_mom_pq_.front() <= w)
-       
-    w =extra_mom_pq_.get();
+  while (extra_mom_pq_.size() && extra_mom_pq_.front() <= w)
+    w = extra_mom_pq_.get();
+  return w;
 }
 
 int
@@ -81,25 +83,22 @@ Global_translator::finish ()
 void
 Global_translator::run_iterator_on_me (Music_iterator * iter)
 {
-  while (iter->ok() || moments_left_i ())
+
+  while (iter->ok () || moments_left_i ())
     {
       Moment w;
       w.set_infinite (1);
-      if (iter->ok())
+      if (iter->ok ())
        {
-         w = iter->next_moment();
+         w = iter->pending_moment();
+      
          DEBUG_OUT << "proccing: " << w << '\n';
-         if (flower_dstream && !flower_dstream->silent_b ("walking"))
-           iter->print();
        }
-      
-      modify_next (w);
+
+      w = sneaky_insert_extra_moment (w);
       prepare (w);
+      iter->process (w);
       
-      if (flower_dstream && !flower_dstream->silent_b ("walking"))
-       print();
-
-      iter->process_and_next (w);
-      process();
+      process ();
     }
 }
index 52ba6f57e06c233a8f1d8ce9384fb485b059a69c..ddcd3a401b34a33eb764f8a1c1c0fbca42463e11 100644 (file)
@@ -27,7 +27,7 @@ Grace_iterator::construct_children ()
 }
 
 void
-Grace_iterator::do_process_and_next (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_and_next (Moment m)
     {
       warning (_("no Grace context available")); 
     }
-  Music_iterator::do_process_and_next (m);
 }
 
 Moment
-Grace_iterator::next_moment () const
+Grace_iterator::pending_moment () const
 {
   return 0;
 }
index ff55700bc10bf1f4530687c2541649c19ce70a38..72b463c7efa39bd7ee6aea96f5ec4f420ddeb72b 100644 (file)
 #include "music-wrapper-iterator.hh"
 #include "direction.hh"
 
-class Auto_change_iterator  : public Music_wrapper_iterator
+class Auto_change_iterator : public Music_wrapper_iterator
 {
-  Direction where_dir_;
-
-  void change_to (Music_iterator* , String, String);
-protected:
-  virtual void do_process_and_next (Moment);  
 public:
+  VIRTUAL_COPY_CONS (Music_iterator);
   Auto_change_iterator ();
+
+protected:
+  virtual void process (Moment);  
+
+private:
+  Direction where_dir_;
+  void change_to (Music_iterator* , String, String);
 };
 
 #endif /* AUTO_CHANGE_ITERATOR_HH */
index 4ab9d99e4a8851199fe51c9dca4a7ca32d8b15b1..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
 {
-  void  error (String);
-
-protected:
-  virtual void do_process_and_next (Moment);
-
 public:
-  /*
-    CTOR is public
-   */
+  VIRTUAL_COPY_CONS (Music_iterator);
+  /* constructor is public */
+  virtual void process (Moment);
+
+private:
+  void  error (String);
 };
 
 #endif
index 9cd632985da7c724a5cce2adb25f4fe0178db855..3f08463c36bfac24de1f6a4ca3659aa1fefe4afb 100644 (file)
 
 class Chord_tremolo_iterator : public Music_iterator
 {
-  Moment factor_;
-  Music_iterator * child_iter_p_;
-
 public:
+  VIRTUAL_COPY_CONS (Music_iterator);
   Chord_tremolo_iterator ();
 
 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_and_next (Moment) ;
+  virtual void process (Moment) ;
   virtual Music_iterator *try_music_in_children (Music *) const;
+
+private:
+  Moment factor_;
+  Music_iterator * child_iter_p_;
 };
 
 
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 e26bac173e0c862c758540efd04e85e003fe2718..6217df1beef06d3026ba5e642991239313051fb9 100644 (file)
  */
 class Folded_repeat_iterator : public Music_iterator
 {
-  Music_iterator * main_iter_p_;
-  Music_iterator * alternative_iter_p_;
-  int count_;
-  Moment main_length_mom_;
 public:
+  VIRTUAL_COPY_CONS (Music_iterator);
   Folded_repeat_iterator ();
   ~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_and_next (Moment);
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
+
+private:
+  Music_iterator * main_iter_p_;
+  Music_iterator * alternative_iter_p_;
+  int count_;
+  Moment main_length_mom_;
 };
 #endif /* FOLDED_REPEAT_ITERATOR_HH */
 
index ebcb6b34e9f582066137192beec99e64cf267aa7..34e99211429c1bf18f3585c13afdeb848c9aa7a7 100644 (file)
@@ -25,7 +25,7 @@ public:
   Global_translator();
 
   int moments_left_i() const;
-  void modify_next (Moment&);
+  Moment sneaky_insert_extra_moment (Moment);
   void add_moment_to_process (Moment);
   void run_iterator_on_me (Music_iterator*);
   
index 9743d7ab901ddd2f5826c101e60ddae5d53c7fe8..4806037d289b1f1f9bf69b0c849c1f0cb2cb195f 100644 (file)
 class Grace_iterator : public Music_wrapper_iterator
 {
 public:
+  VIRTUAL_COPY_CONS (Music_iterator);
   ~Grace_iterator ();
   virtual void construct_children () ;
-  virtual void do_process_and_next (Moment);
+  virtual void process (Moment);
 
-  Moment next_moment () const;
+  Moment pending_moment () const;
 };
 
 
index a8adf33cb4a1057bdc405ebf451db43dcef95b98..cb788f124a9c5e833d9e1806e67d2fc1dd0e4f30 100644 (file)
 
 class Interpretation_context_handle
 {
-  Translator_group * report_to_l_;
-  void down ();
-  void up (Translator_group*);
 public:
   ~Interpretation_context_handle ();
   Interpretation_context_handle ();
+  Interpretation_context_handle* clone () const;
   void set_translator (Translator_group*);
   bool try_music (Music *);
   void operator =(Interpretation_context_handle const&);
   Interpretation_context_handle (Interpretation_context_handle const&);
   Translator_group * report_to_l () const;
+
+private:
+  Translator_group * report_to_l_;
+  void down ();
+  void up (Translator_group*);
 };
 
 #endif /* INTERPRETATION_CONTEXT_HANDLE_HH */
index 226499611007851125a2d1a1e224bd1209331c2f..5d519abf663fda0097ebce8529ed5911940bf751 100644 (file)
 
 class Lyric_combine_music_iterator : public Music_iterator
 {
-  Music_iterator * music_iter_p_;
-  Music_iterator * lyric_iter_p_;
-  
+public:
+  VIRTUAL_COPY_CONS (Music_iterator);
+  Lyric_combine_music_iterator ();
+
 protected:
   virtual void construct_children ();
-  virtual Moment next_moment () const;
-  virtual void do_process_and_next (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 ();
-public:
-  Lyric_combine_music_iterator ();
+
+private:
+  Music_iterator * music_iter_p_;
+  Music_iterator * lyric_iter_p_;
 };
 #endif /* LYRIC_COMBINE_MUSIC_ITERATOR_HH */
 
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 561e9c11eba025a2e57110a7b5cdb398854e98c1..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.
- */
-class Music_iterator {
-  Interpretation_context_handle handle_;
+/** 
+  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.
 
-protected:
-  Music  * music_l_;
-
-  /// ugh. JUNKME
-  bool first_b_;
+  
+  ok () -- events left ?
 
-  /**
-    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;
+  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:
     
-  /**
-    Find a bottom notation context to deliver requests to.
-   */
-  virtual Translator_group* get_req_translator_l();
+    * This removes all events at M from the pending queue.
 
-  /**
-    Get an iterator for MUS, inheriting the translation unit from THIS.
-   */
-  Music_iterator* get_iterator_p (Music *mus) const;
+    * Typically this reports the music to an interpretation context,
+    thus changing the state of the interpretation context.
 
-  /** Do the actual move.  This should be overriden in derived
-    classes.  It is called by #process_and_next#, the public interface 
-    */
-  virtual void do_process_and_next (Moment until);
+  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.
 
-  virtual Music_iterator* try_music_in_children (Music  *) const;
-  
+  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:
+  VIRTUAL_COPY_CONS (Music_iterator);
+
+  Music_iterator ();
+  Music_iterator (Music_iterator const&);
+  virtual ~Music_iterator ();
 
   /**
      Do the reporting.  Will try MUSIC_L_ in its own translator first,
@@ -68,7 +61,7 @@ public:
   /**
     The translation unit that we this iterator is reporting  to now.
    */
-  Translator_group*report_to_l() const;
+  Translator_group* report_to_l () const;
 
   void set_translator (Translator_group*);
   
@@ -78,27 +71,29 @@ public:
   static Music_iterator* static_get_iterator_p (Music * mus);
   void init_translator (Music  *, Translator_group *); 
 
-  Music_iterator();
-    
-  ///  Find the next interesting point in time.
-  virtual Moment next_moment() const;
-
-
-  ///Are we finished with this piece of music?
-  virtual bool ok() const;
-
-  virtual ~Music_iterator();
-
-
-  ///Report all musical information that occurs between now and UNTIL
-  void process_and_next (Moment until);
+  virtual Moment pending_moment () const;
+  virtual bool ok () const;
+  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;
+  virtual void construct_children ();
+
+protected:
+  Music  * music_l_;
+
+  /**
+    Get an iterator for MUS, inheriting the translation unit from THIS.
+   */
+  Music_iterator* get_iterator_p (Music *) const;
+
+  virtual Music_iterator* try_music_in_children (Music *) const;
+
+private:
+  Interpretation_context_handle handle_;
 };
 
 #endif // MUSIC_ITERATOR_HH
index 8200709e52f4d803b08c4c7d44b69220c85a0296..cbe4fa382715944a173161b5a9c088ebd4a0d47a 100644 (file)
 class Music_wrapper_iterator : public Music_iterator
 {
 public:
+  VIRTUAL_COPY_CONS (Music_iterator);
   Music_wrapper_iterator ();
+  Music_wrapper_iterator (Music_wrapper_iterator const&);
   ~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 (Moment)const;
 
 protected:
-  virtual void do_print () const;
-  virtual void do_process_and_next (Moment) ;
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
 
   Music_iterator *child_iter_p_;
index 7b38e0f033a8d936e2b117d1bc67481e91a7e800..4400e458ee5b9438209c4f54e18d24c6130b8be4 100644 (file)
 class Part_combine_music_iterator : public Music_iterator
 {
 public:
+  VIRTUAL_COPY_CONS (Music_iterator);
   Part_combine_music_iterator ();
 
 protected:
+  virtual ~Part_combine_music_iterator ();
+
   virtual void construct_children ();
-  virtual Moment next_moment () const;
-  virtual void do_process_and_next (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 void do_print () const;
-  virtual ~Part_combine_music_iterator ();
 
 private:
   void change_to (Music_iterator*, String, String);
 
   Music_iterator * first_iter_p_;
   Music_iterator * second_iter_p_;
-  Moment now_;
   Moment first_until_;
   Moment second_until_;
-
-  bool combined_b_;
 };
 
 #endif /* PART_COMBINE_MUSIC_ITERATOR_HH */
index 7591fce27748d4e7e510af6bf88ec8a510031741..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:
-  // construction  
+  VIRTUAL_COPY_CONS (Music_iterator);
+  /* construction */
 protected:
-  virtual void do_process_and_next (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:
-  virtual void do_process_and_next (Moment);
+  /* construction */
+  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:
-  virtual void do_process_and_next (Moment);
+  /* construction */
+  virtual void process (Moment);
 };
 
 
index bc092479927baf886341bc77d9a2ed54c52cf6b1..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 SCM get_music (Moment) const;
 protected:
-  virtual void do_process_and_next (Moment);
-  virtual Moment next_moment() const;
+  virtual void process (Moment);
   virtual void construct_children();
-  virtual bool ok() const;
-  virtual void do_print() const;
 };
 
 
index 79f493fa8724d02ba34321300383245f4e943291..5661f260bd6bd58579af7fe6e2e7f636ebc8a645 100644 (file)
 class Sequential_music_iterator :  public Music_iterator
 {
 public:
+  VIRTUAL_COPY_CONS (Music_iterator);
   Sequential_music_iterator ();
+  Sequential_music_iterator (Sequential_music_iterator const&);
   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 (Moment)const;
 
 protected:
-  virtual void do_print() const;
-  virtual void do_process_and_next (Moment);
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
 
-
 private:
   Moment here_mom_;
 
diff --git a/lily/include/simple-music-iterator.hh b/lily/include/simple-music-iterator.hh
new file mode 100644 (file)
index 0000000..6d86c1c
--- /dev/null
@@ -0,0 +1,30 @@
+/*   
+  simple-music-iterator.hh -- declare Simple_music_iterator
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ */
+
+#ifndef SIMPLE_MUSIC_ITERATOR_HH
+#define SIMPLE_MUSIC_ITERATOR_HH
+
+#include "music-iterator.hh"
+
+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 process (Moment);
+  virtual bool ok()const;
+  virtual Moment pending_moment ()const;
+  virtual void construct_children ();
+};
+
+#endif /* SIMPLE_MUSIC_ITERATOR_HH */
+
index 6c4008a95b619682a50f72b28dab0fde8ba7a28d..e5ecdcd14bf386ee75bbb5e50b25c3441b3c7ee9 100644 (file)
@@ -9,29 +9,31 @@
 
 #ifndef SIMULTANEOUS_MUSIC_ITERATOR_HH
 #define SIMULTANEOUS_MUSIC_ITERATOR_HH
+
 #include "music-iterator.hh"
 #include "cons.hh"
 
 class Simultaneous_music_iterator : public Music_iterator
 {
 public:
+  VIRTUAL_COPY_CONS (Music_iterator);
+  Simultaneous_music_iterator ();
+  Simultaneous_music_iterator (Simultaneous_music_iterator const&);
+  virtual ~Simultaneous_music_iterator ();
 
   /// make a new context for every child.
   bool separate_contexts_b_;
-  
-  Simultaneous_music_iterator ();
-  virtual ~Simultaneous_music_iterator ();
+  int cursor_i_;
 
   virtual void construct_children ();
-  virtual Moment next_moment () const;
+  virtual Moment pending_moment () const;
   virtual bool ok () const;
+  virtual SCM get_music (Moment)const;
 
 protected:
-  virtual void do_print () const;
-  virtual void do_process_and_next (Moment);
+  virtual void process (Moment);
   virtual Music_iterator *try_music_in_children (Music *) const;
 
-
 private:
   Cons_list<Music_iterator> children_p_list_;
 };
index 28ab473db01fd65a2f9514a1c0fa43979e952dfc..e18716adc94c99b0b786a32ac921cb4430c0d757 100644 (file)
 class Time_scaled_music_iterator : public Music_wrapper_iterator
 {
 public:  
-  // construction
+  VIRTUAL_COPY_CONS (Music_iterator);
+  /* construction */
 protected:
-  virtual void do_process_and_next (Moment);
+  virtual void process (Moment);
 };
 
 
index 97a649a10a54f3e025050a163f4f4a651061df97..6ffdbb62aaf790969d2cc594b339b303907afa21 100644 (file)
@@ -19,6 +19,7 @@
 class Unfolded_repeat_iterator : public Music_iterator
 {
 public:
+  VIRTUAL_COPY_CONS (Music_iterator);
   /**
      How often have we done the body (assuming bodies are interspersed.)?
    */
@@ -46,13 +47,12 @@ public:
 
 protected:  
   virtual void construct_children ();
-  virtual Moment next_moment () const;
-  virtual void do_process_and_next (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 b6a403ea2dcd05e64e2324890308993741db2364..e5b056e60180ec94f89f8c7fa8a005d85238dcc2 100644 (file)
 #include "interpretation-context-handle.hh"
 #include "translator-group.hh"
 
+Interpretation_context_handle::Interpretation_context_handle()
+{
+  report_to_l_ =0;
+}
+
+Interpretation_context_handle::Interpretation_context_handle (Interpretation_context_handle const&s)
+{
+  report_to_l_ =0;
+  if (s.report_to_l_)
+    up (s.report_to_l_ );
+}
+
+Interpretation_context_handle*
+Interpretation_context_handle::clone () const
+{
+  Interpretation_context_handle* handle = new Interpretation_context_handle;
+  handle->report_to_l_ = this->report_to_l_;
+  return handle;
+}
+
+Interpretation_context_handle::~Interpretation_context_handle ()
+{
+  if (report_to_l_)
+    down ();
+}
+
 void
 Interpretation_context_handle::up (Translator_group*t)
 {
@@ -31,13 +57,6 @@ Interpretation_context_handle::try_music (Music *m)
   return  report_to_l_->try_music (m);
 }
 
-Interpretation_context_handle::Interpretation_context_handle (Interpretation_context_handle const&s)
-{
-  report_to_l_ =0;
-  if (s.report_to_l_)
-    up (s.report_to_l_ );
-}
-
 void
 Interpretation_context_handle::operator = (Interpretation_context_handle const &s)
 {
@@ -61,14 +80,4 @@ Interpretation_context_handle::report_to_l ()const
   return report_to_l_;
 }
 
-Interpretation_context_handle::Interpretation_context_handle()
-{
-  report_to_l_ =0;
-}
-
-Interpretation_context_handle::~Interpretation_context_handle ()
-{
-  if (report_to_l_)
-    down ();
-}
 
index c422d79e63d3618b63796c0295aca63e17bc35ff..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,13 +60,13 @@ Lyric_combine_music_iterator::construct_children ()
 }
 
 void
-Lyric_combine_music_iterator::do_process_and_next (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;
   
-  music_iter_p_->process_and_next (m);
+  music_iter_p_->process (m);
 
   bool busy = try_music (busy_req);
   if (busy)
@@ -90,13 +84,12 @@ Lyric_combine_music_iterator::do_process_and_next (Moment m)
                lyric_iter_p_->try_music (melisma_stop_req);
 #endif
              
-             Moment m= lyric_iter_p_->next_moment ();
-             lyric_iter_p_->process_and_next (m);
+             Moment m= lyric_iter_p_->pending_moment ();
+             lyric_iter_p_->process (m);
            }
        }
     }
   
-  Music_iterator::do_process_and_next (m);
 }
 
 Lyric_combine_music_iterator::~Lyric_combine_music_iterator ()
index b1697e199eec9eaf4d8c74017ac3b81473bd3c11..51ae61f1ce333ff0c6bd46d767dfb3492989f3e0 100644 (file)
 #include "part-combine-music.hh"
 #include "part-combine-music-iterator.hh"
 #include "request.hh"
-#include "request-iterator.hh"
+#include "simple-music-iterator.hh"
 #include "output-property.hh"
 #include "chord-tremolo-iterator.hh"
 
-void
-Music_iterator::do_print() const
+Music_iterator::Music_iterator ()
 {
+  //  clone_i_ = 0;
 }
 
-void
-Music_iterator::print() const
+Music_iterator::Music_iterator (Music_iterator const& src)
 {
-#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
+  //  clone_i_ = src.clone_i_ + 1;
+  handle_ = *src.handle_.clone ();
+  music_l_ = src.music_l_;
 }
 
-Translator_group*
-Music_iterator::get_req_translator_l()
+Music_iterator::~Music_iterator ()
 {
-  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* 
-Music_iterator::report_to_l() const
+Music_iterator::report_to_l () const
 {
   return handle_.report_to_l ();
 }
 
 
 void
-Music_iterator::set_translator (Translator_group*trans)
+Music_iterator::set_translator (Translator_group *trans)
 {
   handle_.set_translator (trans);
 }
 
 void
-Music_iterator::construct_children()
-{
-}
-
-Music_iterator::~Music_iterator()
+Music_iterator::construct_children ()
 {
 }
 
 Moment
-Music_iterator::next_moment() const
+Music_iterator::pending_moment () const
 {
   return 0;
 }
 
 
 void
-Music_iterator::process_and_next (Moment m)
+Music_iterator::process (Moment)
 {
-  do_process_and_next (m);
 }
 
-void
-Music_iterator::do_process_and_next (Moment)
+bool
+Music_iterator::ok () const
 {
-  first_b_ = false;
+  return false;
 }
 
-bool
-Music_iterator::ok() const
+SCM
+Music_iterator::get_music (Moment)const
 {
-  return first_b_;
+  return SCM_EOL;
 }
 
 Music_iterator*
-Music_iterator::static_get_iterator_p (Music  *m)
+Music_iterator::static_get_iterator_p (Music *m)
 {
   Music_iterator * p =0;
 
@@ -142,9 +121,9 @@ Music_iterator::static_get_iterator_p (Music  *m)
     p = new Property_iterator;
   else if (dynamic_cast<Change_translator *> (m))
     p = new Change_iterator;
-  else if (dynamic_cast<Push_translation_property*>(m))
+  else if (dynamic_cast<Push_translation_property*> (m))
     p = new Push_property_iterator;
-  else if (dynamic_cast<Pop_translation_property*>(m))
+  else if (dynamic_cast<Pop_translation_property*> (m))
     p = new Pop_property_iterator;
   else if (dynamic_cast<Time_scaled_music *> (m))
     p = new Time_scaled_music_iterator;
@@ -175,10 +154,10 @@ Music_iterator::static_get_iterator_p (Music  *m)
 }
 
 void
-Music_iterator::init_translator (Music  *m, Translator_group  *report_l)
+Music_iterator::init_translator (Music *m, Translator_group *report_l)
 {
   music_l_ = m;
-  if (Context_specced_music  * csm =dynamic_cast<Context_specced_music *>(m))
+  if (Context_specced_music * csm =dynamic_cast<Context_specced_music *> (m))
     {
       Translator_group* a =report_l->
        find_create_translator_l (csm->translator_type_str_, csm->translator_id_str_);
@@ -187,7 +166,7 @@ Music_iterator::init_translator (Music  *m, Translator_group  *report_l)
       
     }
 
-  if (! report_to_l())
+  if (! report_to_l ())
     set_translator (report_l);
 }
 
@@ -196,21 +175,16 @@ Music_iterator*
 Music_iterator::get_iterator_p (Music *m) const
 {
   Music_iterator*p = static_get_iterator_p (m);
-  p->init_translator (m, report_to_l());
+  p->init_translator (m, report_to_l ());
   
-  p->construct_children();
+  p->construct_children ();
   return p;
 }
 
-Music_iterator::Music_iterator()
-{
-  first_b_ = true;
-}
-
 Music_iterator*
-Music_iterator::try_music (Music  *m) const
+Music_iterator::try_music (Music *m) const
 {
-  bool b = report_to_l ()->try_music ((Music*)m); // ugh
+  bool b = report_to_l ()->try_music ( (Music*)m); // ugh
   Music_iterator * it = b ? (Music_iterator*) this : 0;        // ugh
   if (!it)
     it = try_music_in_children (m);
@@ -218,7 +192,7 @@ Music_iterator::try_music (Music  *m) const
 }
 
 Music_iterator*
-Music_iterator::try_music_in_children (Music  *  ) const
+Music_iterator::try_music_in_children (Music *) const
 {
   return 0;
 }
index af658cf72a5905d6345810cd0925f7bc0cb12328..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>
-  
  */
 
 
@@ -16,14 +15,18 @@ Music_wrapper_iterator::Music_wrapper_iterator ()
   child_iter_p_ =0;
 }
 
+Music_wrapper_iterator::Music_wrapper_iterator (Music_wrapper_iterator const &src)
+  : Music_iterator (src)
+{
+  child_iter_p_ = src.child_iter_p_->clone ();
+}
 
-
-void
-Music_wrapper_iterator::do_print () const
+Music_wrapper_iterator::~Music_wrapper_iterator ()
 {
-  child_iter_p_->print ();
+  delete child_iter_p_;
 }
 
+
 void
 Music_wrapper_iterator::construct_children ()
 {
@@ -31,12 +34,6 @@ Music_wrapper_iterator::construct_children ()
     get_iterator_p (dynamic_cast<Music_wrapper const*> (music_l_)->element ());
 }
 
-Music_wrapper_iterator::~Music_wrapper_iterator ()
-{
-  delete child_iter_p_;
-}
-
-
 bool
 Music_wrapper_iterator::ok () const
 {
@@ -44,20 +41,23 @@ Music_wrapper_iterator::ok () const
 }
 
 void
-Music_wrapper_iterator::do_process_and_next (Moment m)
+Music_wrapper_iterator::process (Moment m)
 {
-  child_iter_p_->process_and_next (m);
-  Music_iterator::do_process_and_next (m);
+  child_iter_p_->process (m);
 }
 
+SCM
+Music_wrapper_iterator::get_music (Moment m)const
+{
+  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 3a72a587a959865256883b60abb0acd86d56ad94..9fa9bd7fe3b26f042fbe13428776fabd34c00d88 100644 (file)
 #include "part-combine-music-iterator.hh"
 #include "translator-group.hh"
 #include "musical-request.hh"
+#include "music-sequence.hh"
 #include "warn.hh"
 
 Part_combine_music_iterator::Part_combine_music_iterator ()
 {
-  combined_b_ = true;
-
-  now_ = 0;
   first_iter_p_ = 0;
   second_iter_p_ = 0;
   first_until_ = 0;
@@ -30,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
@@ -50,13 +47,6 @@ Part_combine_music_iterator::ok () const
   return first_iter_p_->ok () || second_iter_p_->ok ();
 }
 
-void
-Part_combine_music_iterator::do_print () const
-{
-  first_iter_p_->print ();
-  second_iter_p_->print ();
-}
-
 void
 Part_combine_music_iterator::construct_children ()
 {
@@ -117,110 +107,106 @@ Part_combine_music_iterator::change_to (Music_iterator *it, String to_type,
     error (_f ("none of these in my family: `%s'", to_id.ch_C ()));
 }
 
-Pitch_interrogate_req* first_spanish_inquisition; // nobody expects it
-Pitch_interrogate_req* second_spanish_inquisition; // won't strike twice
-
-Rhythm_interrogate_req* first_rhythmic_inquisition;
-Rhythm_interrogate_req* second_rhythmic_inquisition;
-
 void
-Part_combine_music_iterator::do_process_and_next (Moment m)
+Part_combine_music_iterator::process (Moment m)
 {
-  Part_combine_music const * p = dynamic_cast<Part_combine_music const* > (music_l_);
-
-  now_ = next_moment ();
-
-  /*
-    Hmm, shouldn't we check per iterator if next_moment < m?
-   */
-  if (first_iter_p_->ok ())
-    first_iter_p_->process_and_next (m);
-  
-  if (second_iter_p_->ok ())
-    second_iter_p_->process_and_next (m);
-
-  Music_iterator::do_process_and_next (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_);
 
-    * Maybe we need a Skip_engraver?
-
-    (check): can this all be handled now?
-    
-    Maybe different modes exist?
-
-    * Wind instruments (Flute I/II)
-    * Hymnals:  
-
-
-      Rules for Hymnals/SATB (John Henckel <henckel@iname.com>):
-
-      1. if S and A differ by less than a third, the stems should be up/down.
-      2. else if S and A have different values, the stems should be up/down.
-      3. else if A sings "la" or higher, both S and A stems should be down.
-      4. else both stems should be up
-
-    * This may get really tricky: combining voices/staffs: string instruments
+  Moment now = pending_moment ();
 
-   */
+  Array<Musical_pitch> first_pitches;
+  Array<Duration> first_durations;
+  if (first_iter_p_->ok ())
+    {
+      /* 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))
+       {
+         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;
+    }
   
-  if (!first_spanish_inquisition)
-    first_spanish_inquisition = new Pitch_interrogate_req;
-  first_iter_p_->try_music (first_spanish_inquisition);
+  Array<Musical_pitch> second_pitches;
+  Array<Duration> second_durations;
+  if (second_iter_p_->ok ())
+    {
+      Music_iterator *mi = second_iter_p_->clone ();
+      for (SCM i = mi->get_music (now); gh_pair_p (i); i = gh_cdr (i))
+       {
+         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;
+    }
   
-  if (!second_spanish_inquisition)
-    second_spanish_inquisition = new Pitch_interrogate_req;
-  second_iter_p_->try_music (second_spanish_inquisition);
-
-  Array<Musical_pitch>* first_pitches = &first_spanish_inquisition->pitch_arr_;
-  Array<Musical_pitch>* second_pitches = &second_spanish_inquisition->pitch_arr_;
-
-  if (!first_rhythmic_inquisition)
-    first_rhythmic_inquisition = new Rhythm_interrogate_req;
-  first_iter_p_->try_music (first_rhythmic_inquisition);
-
-  if (!second_rhythmic_inquisition)
-    second_rhythmic_inquisition = new Rhythm_interrogate_req;
-  second_iter_p_->try_music (second_rhythmic_inquisition);
-
-  Array<Duration>* first_durations = &first_rhythmic_inquisition->duration_arr_;
-  Array<Duration>* second_durations = &second_rhythmic_inquisition->duration_arr_;
-
   SCM interval = SCM_BOOL_F;
-  if (first_pitches->size () && second_pitches->size ())
+  if (first_pitches.size () && second_pitches.size ())
     {
-      first_pitches->sort (Musical_pitch::compare);
-      second_pitches->sort (Musical_pitch::compare);
-      interval = gh_int2scm (first_pitches->top ().steps ()
-                            - (*second_pitches)[0].steps ());
+      first_pitches.sort (Musical_pitch::compare);
+      second_pitches.sort (Musical_pitch::compare);
+      interval = gh_int2scm (first_pitches.top ().steps ()
+                            - second_pitches[0].steps ());
     }
-  if (first_durations->size ())
+  if (first_durations.size ())
     {
-      first_durations->sort (Duration::compare);
-      Moment new_until = now_ + first_durations->top ().length_mom ();
+      first_durations.sort (Duration::compare);
+      Moment new_until = now + first_durations.top ().length_mom ();
       if (new_until > first_until_)
        first_until_ = new_until;
     }
 
-    if (second_durations->size ())
+    if (second_durations.size ())
     {
-      second_durations->sort (Duration::compare);
-      Moment new_until = now_ + second_durations->top ().length_mom ();
+      second_durations.sort (Duration::compare);
+      Moment new_until = now + second_durations.top ().length_mom ();
       if (new_until > second_until_)
        second_until_ = new_until;
     }
 
+#if 0 /* DEBUG */
+  printf ("now: %s\n", now.str ().ch_C ());
+  printf ("first: ");
+  for (int i = 0; i < first_pitches.size (); i++)
+    {
+      printf ("%s, ", first_pitches[i].str ().ch_C ());
+    }
+  printf ("\nsecond: ");
+  for (int i = 0; i < second_pitches.size (); i++)
+    {
+      printf ("%s, ", second_pitches[i].str ().ch_C ());
+    }
+  printf ("\n");
+#endif
+
   Translator_group * fir = first_iter_p_->report_to_l ();
   Translator_group * sir = second_iter_p_->report_to_l ();
 
-  bool solo_b = (first_pitches->empty () != second_pitches->empty ())
-    && !(first_until_ > now_ && second_until_ > now_);
+  bool solo_b = (first_pitches.empty () != second_pitches.empty ())
+    && !(first_until_ > now && second_until_ > now);
 
-  bool unirhythm_b = !solo_b && !compare (first_durations, second_durations);
-  bool unison_b = unirhythm_b && !first_pitches->empty ()
-    &&!compare (first_pitches, second_pitches);
-  bool unisilence_b = unirhythm_b && first_pitches->empty ();
+  bool unirhythm_b = !solo_b && !compare (&first_durations, &second_durations);
+  bool unison_b = unirhythm_b && !first_pitches.empty ()
+    &&!compare (&first_pitches, &second_pitches);
+  bool unisilence_b = unirhythm_b && first_pitches.empty ();
 
   Translator_group * fd = fir->find_create_translator_l (p->what_str_, "one");
   Translator_group * sd = sir->find_create_translator_l (p->what_str_, "two");
@@ -238,28 +224,23 @@ Part_combine_music_iterator::do_process_and_next (Moment m)
        split_interval_b = true;
     }
 
-  /*
-    Hmm, maybe we should set/check combined_b_ against
-
-       first_iter_p_->report_to_l () == second_iter_p_->report_to_l ()
-
-   ? 
-   */
+  bool combined_b = first_iter_p_->report_to_l ()->daddy_trans_l_
+    == second_iter_p_->report_to_l ()->daddy_trans_l_;
 
-  String to_id =  combined_b_ ? "one" : "two";
-  if ((!unirhythm_b && combined_b_)
-      || (split_interval_b && combined_b_)
-      || (solo_b && combined_b_)
-      /*|| (unisilence_b && combined_b_) */
+  String to_id =  combined_b ? "one" : "two";
+  if ((!unirhythm_b && combined_b)
+      || (split_interval_b && combined_b)
+      || (solo_b && combined_b)
+      /*|| (unisilence_b && combined_b) */
       || ((unirhythm_b || unison_b || unisilence_b)
-         && !combined_b_ && !split_interval_b && !solo_b))
+         && !combined_b && !split_interval_b && !solo_b))
     {
-      combined_b_ = !combined_b_;
-      to_id =  combined_b_ ? "one" : "two";
+      combined_b = !combined_b;
+      to_id =  combined_b ? "one" : "two";
       change_to (second_iter_p_, p->what_str_, to_id);
     }
 
-  if (!combined_b_)
+  if (!combined_b)
     sir = second_iter_p_->report_to_l ();
 
   SCM b = unirhythm_b ? SCM_BOOL_T : SCM_BOOL_F;
@@ -279,22 +260,23 @@ Part_combine_music_iterator::do_process_and_next (Moment m)
   sd->set_property ("unison", b);
 
   b = solo_b  ? SCM_BOOL_T : SCM_BOOL_F;
-  if (first_pitches->size ())
+  if (first_pitches.size ())
     {
       fd->set_property ("solo", b);
       sd->set_property ("solo", SCM_BOOL_F);
     }
 
-  if (second_pitches->size ())
+  if (second_pitches.size ())
     {
       fd->set_property ("solo", SCM_BOOL_F);
       sd->set_property ("solo", b);
     }
 
-  first_pitches->clear ();
-  second_pitches->clear ();
-  first_durations->clear ();
-  second_durations->clear ();
+  if (first_iter_p_->ok ())
+    first_iter_p_->process (m);
+  
+  if (second_iter_p_->ok ())
+    second_iter_p_->process (m);
 }
 
 Music_iterator*
@@ -307,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 2f44683094ea11879b913924501860c4d61dc6b9..ea8273d7611b1bf241f7530bd1d170c166cccf71 100644 (file)
   translation unit, and set the property.
   */
 void
-Property_iterator::do_process_and_next (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_and_next (m);
+  Simple_music_iterator::process (m);
 }
 
-
 void
-Push_property_iterator::do_process_and_next (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");
@@ -34,15 +33,15 @@ Push_property_iterator::do_process_and_next (Moment m)
 
   Translator_def::apply_pushpop_property (report_to_l (), syms, eprop, val);
   
-  Music_iterator::do_process_and_next (m);
+  Simple_music_iterator::process (m);
 }
 
 void
-Pop_property_iterator::do_process_and_next (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_and_next (m);
+  Simple_music_iterator::process (m);
 }
index 7f0b00827f96e47beaa47fdb16b964f43d5c8411..f463190a342dc3223c4939a5cdf54c902aba8516 100644 (file)
 #include "music-list.hh"
 #include "request.hh"
 
-
-
-void
-Request_chord_iterator::construct_children()
+Request_chord_iterator::Request_chord_iterator ()
 {
-  elt_length_mom_ =elt_l ()->length_mom ();
-  get_req_translator_l();
 }
 
-Request_chord*
-Request_chord_iterator::elt_l () const
+Request_chord_iterator::Request_chord_iterator (Request_chord_iterator const &src)
+  : Simple_music_iterator (src)
 {
-  return (Request_chord*) music_l_;
 }
 
-Request_chord_iterator::Request_chord_iterator ()
+Translator_group*
+Request_chord_iterator::get_req_translator_l ()
 {
-  last_b_ = false;
-}
+  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 ();
+}
 
-bool
-Request_chord_iterator::ok() const
+void
+Request_chord_iterator::construct_children()
 {
-  return (elt_length_mom_ && !last_b_) || first_b_;
+  Simple_music_iterator::construct_children ();
+  get_req_translator_l();
 }
 
-Moment
-Request_chord_iterator::next_moment() const
+Request_chord*
+Request_chord_iterator::elt_l () const
 {
-  Moment m (0);
-  if  (!first_b_)
-    m = elt_length_mom_;
-  return m;
+  return (Request_chord*) music_l_;
 }
 
 
-void
-Request_chord_iterator::do_print() const
+SCM
+Request_chord_iterator::get_music (Moment)const
 {
-#ifndef NPRINT
-  DEBUG_OUT << "duration: " << elt_length_mom_;
-#endif
+  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_and_next (Moment mom)
+Request_chord_iterator::process (Moment m)
 {
-  if (first_b_)
+  last_processed_mom_ = m;
+  if (music_l_)
     {
-      for (SCM s = dynamic_cast<Music_sequence *> (music_l_)->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);
@@ -73,11 +81,9 @@ Request_chord_iterator::do_process_and_next (Moment mom)
            }
          else
            mus->origin ()->warning (_f ("Huh?  Not a Request: `%s'",
-                                                classname (mus)));
-                   }
-      first_b_ = false;
-    }
+                                        classname (mus)));
+       }
 
-  if (mom >= elt_length_mom_)
-    last_b_ = true;
+     music_l_ =0;
+    }
 }
index d99381cf5415a8645039c6251cf44388c58e6575..8218251942fa75c016bad1a52b259a0805b03489 100644 (file)
 #include "music-list.hh"
 #include "request-chord-iterator.hh"
 
-
-void
-Sequential_music_iterator::do_print() const
-{
-  if (iter_p_)
-    iter_p_->print();
-}
-
 Sequential_music_iterator::Sequential_music_iterator ()
 {
   cursor_ = 0;
@@ -27,6 +19,27 @@ Sequential_music_iterator::Sequential_music_iterator ()
   iter_p_ =0;
 }
 
+Sequential_music_iterator::Sequential_music_iterator (Sequential_music_iterator const &src)
+  : Music_iterator (src)
+{
+  cursor_ = src.cursor_;
+  here_mom_ = src.here_mom_;
+  iter_p_ = src.iter_p_->clone ();
+}
+
+Sequential_music_iterator::~Sequential_music_iterator()
+{
+  if (iter_p_)
+    {
+      /*      if (iter_p_->ok () )
+       music_l_->origin ()->warning (_ ("Must stop before this music ends"));
+      */
+      delete iter_p_;
+      iter_p_ = 0;
+    }
+}
+
+
 void
 Sequential_music_iterator::construct_children()
 {
@@ -75,56 +88,78 @@ Sequential_music_iterator::set_sequential_music_translator()
     set_translator (child_report);
 }
 
-Sequential_music_iterator::~Sequential_music_iterator()
+
+SCM
+Sequential_music_iterator::get_music (Moment until)const
 {
-  if (iter_p_)
-    {
-      if (iter_p_->ok ())
-       music_l_->origin ()->warning (_ ("Must stop before this music ends"));
-      delete iter_p_;
-      iter_p_ = 0;
-    }
+#if 0
+  /*
+     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 s;
+#endif
+  return SCM_EOL;
 }
 
 void
-Sequential_music_iterator::do_process_and_next (Moment until)
+Sequential_music_iterator::process (Moment until)
 {
-  if (!iter_p_)
-    return;
-
-  while (1) 
+  if (ok ())
     {
-      Moment local_until = until - here_mom_;
-      while (iter_p_->ok()) 
-       {
-         Moment here = iter_p_->next_moment();
-         if (here != local_until)
-           goto loopexit;
-           
-         iter_p_->process_and_next (local_until);
-       }
-      
-      if (!iter_p_->ok()) 
+      while (1) 
        {
-         set_sequential_music_translator();
-         leave_element();
+         Moment local_until = until - here_mom_;
+         while (iter_p_->ok ()) 
+           {
+             Moment here = iter_p_->pending_moment ();
+             if (here != local_until)
+               return ;
+             
+             iter_p_->process (local_until);
+           }
          
-         if (gh_pair_p (cursor_))
-           start_next_element();
-         else 
-           goto loopexit;
+         if (!iter_p_->ok ()) 
+           {
+             set_sequential_music_translator ();
+             leave_element ();
+             
+             if (gh_pair_p (cursor_))
+               start_next_element ();
+             else 
+               return ;
+           }
        }
     }
-
-loopexit:
-
-  Music_iterator::do_process_and_next (until);
 }
 
 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_;
 }
 
 
diff --git a/lily/simple-music-iterator.cc b/lily/simple-music-iterator.cc
new file mode 100644 (file)
index 0000000..a25147d
--- /dev/null
@@ -0,0 +1,64 @@
+/*   
+  simple-music-iterator.cc --  implement Simple_music_iterator
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "simple-music-iterator.hh"
+#include "music.hh"
+#include "input.hh"
+
+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::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
+  /*
+    try_music () causes trouble for base classes
+   */
+  if (music_l_)
+    {
+      bool b = try_music (music_l_);
+      if (!b)
+       music_l_->origin ()->warning (_f ("Junking music: `%s'",
+                                         classname (music_l_)));
+    }
+#endif
+  music_l_ = 0;
+  last_processed_mom_ = m;
+}
index 5ea7f712186579e8b819b19e7301be464a293e64..f860241448d502217871bbe109fe6edea643a556 100644 (file)
 Simultaneous_music_iterator::Simultaneous_music_iterator ()
 {
   separate_contexts_b_ = false;
+  cursor_i_ = 0;
+}
+
+Simultaneous_music_iterator::Simultaneous_music_iterator (Simultaneous_music_iterator const& src)
+  : Music_iterator (src)
+{
+  cursor_i_ = src.cursor_i_;
+  separate_contexts_b_ = src.separate_contexts_b_;
+  for (Cons<Music_iterator> *p = children_p_list_.head_; p; p = p->next_)
+    {
+      Music_iterator *i = p->car_;
+      children_p_list_.append (new Killing_cons<Music_iterator> (i->clone (), 0));
+    }
 }
 
 Simultaneous_music_iterator::~Simultaneous_music_iterator ()
@@ -22,6 +35,23 @@ Simultaneous_music_iterator::~Simultaneous_music_iterator ()
   children_p_list_.junk ();
 }
 
+/*
+  Should roll next () into this as well
+
+
+  huh? --hwn
+ */
+SCM
+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 (m), s);
+    }
+  return s;
+}
+
 void
 Simultaneous_music_iterator::construct_children()
 {
@@ -57,44 +87,32 @@ 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_and_next (Moment until)
+Simultaneous_music_iterator::process (Moment until)
 {
-  for (Cons<Music_iterator> **pp = &children_p_list_.head_; *pp; )
+  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_and_next (until);
+         i->process (until);
        }
       if (!i->ok())
        delete children_p_list_.remove_cons (pp);
       else
        pp = &(*pp)->next_;
     }
-  Music_iterator::do_process_and_next (until);
 }
 
-
-
-
 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 6230181c884b04482408c15f11fc4285361dfec4..f68a4d7d88304d2e11e7548813b306b49ca88117 100644 (file)
@@ -14,7 +14,7 @@
 #include "command-request.hh"
 
 void
-Time_scaled_music_iterator::do_process_and_next (Moment m)
+Time_scaled_music_iterator::process (Moment m)
 {
   if (!m)
     {
@@ -25,5 +25,5 @@ Time_scaled_music_iterator::do_process_and_next (Moment m)
        music_l_->origin ()->warning ( _("no one to print a tuplet start bracket"));
     }
 
-  Music_wrapper_iterator::do_process_and_next (m);
+  Music_wrapper_iterator::process (m);
 }
index 19b54bb2aab51f4525d78951cde98d455e70ce45..0477d3e645581a067ae1d7937adc60377eb898c4 100644 (file)
@@ -33,7 +33,8 @@ Translator_group::properties_dict () const
 
 Translator_group::~Translator_group ()
 {
-  assert (removable_b());
+  
+  //assert (removable_b());
 }
 
 
index 6395987a1df84f235dba6c6fbabeacdadaea4b75..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_and_next (Moment m) 
+Unfolded_repeat_iterator::process (Moment m) 
 {
   if (!m)
     {
@@ -155,22 +155,13 @@ Unfolded_repeat_iterator::do_process_and_next (Moment m)
            return;
        }
       
-      if (m - done_mom_ >= current_iter_p_->next_moment ())
-       current_iter_p_->process_and_next (m - done_mom_);
+      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 a6684ed45416fa1fccf517d3f06eba82daa19e81..93e17d18db96610c277a063c0654cb5448472af3 100644 (file)
@@ -17,13 +17,45 @@ 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[] = {
-  //   "beam-interface",
+#if 0
+  "beam-interface",
+#endif
   "slur-interface",
   "tie-interface",
   "text-item-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 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'"