]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.79.jcn4
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 20 Aug 2000 14:56:11 +0000 (16:56 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 20 Aug 2000 14:56:11 +0000 (16:56 +0200)
1.3.79.jcn4
===========

* Coriolan fixes.

* Slur attachment fix for chords where case slurdir != stemdir.

25 files changed:
CHANGES
NEWS
VERSION
input/bugs/hang.ly [new file with mode: 0644]
input/bugs/monstrous.ly
input/bugs/slur.ly
input/test/monstrous.ly [new file with mode: 0644]
input/test/part-combine-score.ly [new file with mode: 0644]
lily/a2-devnull-engraver.cc
lily/my-lily-lexer.cc
lily/parser.yy
lily/slur.cc
lily/spanner.cc
ly/engraver.ly
ly/performer.ly
mutopia/Coriolan/bassi-part.ly
mutopia/Coriolan/coriolan-midi.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/viola-1.ly
mutopia/Coriolan/viola-2.ly
mutopia/Coriolan/violi-part.ly
scm/slur.scm

diff --git a/CHANGES b/CHANGES
index 0e3fcdf38802dbec0048f161d725a9c5d4dc4e56..1234b55c6e6bd9757578912b3c060171cef0c32b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,10 @@
+1.3.79.jcn4
+===========
+
+* Coriolan fixes.
+
+* Slur attachment fix for chords where case slurdir != stemdir.
+
 1.3.79.jcn3
 ===========
 
diff --git a/NEWS b/NEWS
index 9297c95a40dedeed284af8a79d38f0c37837b1f9..90f069c6f7a41164940a0b869b4e3fa911606abb 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,9 +5,10 @@
 * Improved design and implementation: Complete rewrite of the
 internals: LilyPond is smaller, cleaner, more flexible, etc.
 
- - More pervasive GUILE integration resulting in 
+ - More pervasive GUILE integration resulting in:
 
- - Improved speed, with comparable memory footprint
+ - Improved speed (undone for now, by .73 + .74), 
+   with comparable memory footprint
 
  - Improved robustness: Lily almost never crashes.
 
@@ -17,6 +18,11 @@ internals: LilyPond is smaller, cleaner, more flexible, etc.
 
 * Typography: More elegant slurs, aligned dynamics, text crescendos,
 
+* Nice lyrics placement: Automagical phrasing and melisma alignment.
+
+* Part combining for orchestral scores and hymns: Automagical combining
+  and separating of two voices, with Solo/`a2 indications as appropriate.
+
 * Chordnames are now configurable in every respect
 
 * Included extensive glossary
diff --git a/VERSION b/VERSION
index 648c53e1aec59b0dc729df671c85363c08903850..b864025dbd61db54e665fe53cbc29c4c8064487f 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=79
-MY_PATCH_LEVEL=jcn3
+MY_PATCH_LEVEL=jcn4
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/input/bugs/hang.ly b/input/bugs/hang.ly
new file mode 100644 (file)
index 0000000..efcd426
--- /dev/null
@@ -0,0 +1,18 @@
+\score{
+       <
+       \context Staff = flauti <
+               \context Voice=one \partcombine Voice
+                       \context Thread=one \notes\relative c''
+                               {
+                                       %c1
+                                       c2 c2
+                               }
+                       \context Thread=two \notes\relative c''
+                               {
+                               }
+               >
+       >
+       \paper{
+               
+       }
+}
index e25ea236e57b43a98a3bddc7c78d73366ac6baf0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,22 +0,0 @@
-
-%% Chord gurus, is this ok now??
-
-monstrous= \chords{
-    \property Score.chordInversion = "1"
-
-    % /c is/was missing:
-    bes:6/+c
-
-    % Cdim7
-    c:dim7
-}
-
-\score{
-    <
-       \context ChordNames \monstrous
-       \context Staff \monstrous
-    >
-    \paper{
-       linelength=-1.0\mm;
-    }
-}
index c2a8552d1de77ad394fa63980fd7b6b9b6b137c1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,5 +0,0 @@
-
- \score {
-       \notes \relative c' {
-       c2(  c  \break c c  c  c  \break c 
-}}
diff --git a/input/test/monstrous.ly b/input/test/monstrous.ly
new file mode 100644 (file)
index 0000000..d9c8dbf
--- /dev/null
@@ -0,0 +1,22 @@
+
+%% Chord gurus, is this ok now??
+
+monstrous= \chords{
+    \property Score.chordInversion = ##t 
+
+    % /c is/was missing:
+    bes:6/+c
+
+    % Cdim7
+    c:dim7
+}
+
+\score{
+    <
+       \context ChordNames \monstrous
+       \context Staff \monstrous
+    >
+    \paper{
+       linelength=-1.0\mm;
+    }
+}
diff --git a/input/test/part-combine-score.ly b/input/test/part-combine-score.ly
new file mode 100644 (file)
index 0000000..c674bd4
--- /dev/null
@@ -0,0 +1,206 @@
+\score{
+       <
+       \context VoiceCombineStaff = flauti <
+               \time 4/4;
+
+               \context VoiceCombineThread=one \skip 1*9;
+               \context VoiceCombineThread=two \skip 1*9;
+
+               \context VoiceCombineVoice=one \partcombine VoiceCombineVoice
+                       \context VoiceCombineThread=one \notes\relative c''
+                               {
+                                       c4 d e f
+                                       b,4 d c d
+                                       r2 e4 f
+                                       \break
+                                       c4 d e f
+                                       c4 r e f
+                                       c4 r e f
+                                       \break
+                                       c4 r a r
+                                       a a r a
+                                       a2 \property VoiceCombineThread.soloADue = ##f a
+                               }
+                       \context VoiceCombineThread=two \notes\relative c''
+                               {
+                                       g4 b d f
+                                       r2 c4 d
+                                       a c c d
+                                       a4. b8 c4 d
+                                       c r e r
+                                       r2 s2
+                                       a,4 r a r
+                                       a r r a
+                                       a2 \property VoiceCombineThread.soloADue = ##f a
+                               }
+               >
+       \context PianoStaff <
+               \context StaffCombineStaff=one \skip 1*9;
+               \context StaffCombineStaff=two \skip 1*9;
+               \context StaffCombineStaff=one \partcombine StaffCombineStaff
+                       \context StaffCombineThread=one \notes\relative c''
+                               {
+                                       c4 d e f
+                                       c d e f
+                                       c d e f
+                                       c d e f
+                                       c d e f
+                                       c d e f
+                                       c4 d e f
+                                       a8 a a a
+                                       b b b b
+                                       d1
+                               }
+                       \context StaffCombineThread=two \notes\relative c''
+                               {
+                                       c4 d e f
+                                       c d e f
+                                       c d e f
+                                       c2 e2
+                                       c4 d e f
+                                       c2 e2
+                                       c,4 d e f
+                                       a8 a a a
+                                       b b b b
+                                       b1
+                               }
+               >
+       >
+       \paper{
+               %
+               % The Voice combine hierarchy
+               %
+               \translator{
+                       \ThreadContext
+                       \name "VoiceCombineThread";
+                       \consists "Rest_engraver";
+               }
+               \translator{
+                       \VoiceContext
+                       \name "VoiceCombineVoice";
+                       \remove "Rest_engraver";
+                       \accepts "VoiceCombineThread";
+               }
+               \translator{
+                       \HaraKiriStaffContext
+                       \consists "Mark_engraver";
+                       \name "VoiceCombineStaff";
+                       \accepts "VoiceCombineVoice";
+               }
+
+               %
+               % The Staff combine hierarchy
+               %
+               \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";
+               }
+               \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";
+               }
+               \translator {
+                       \StaffGroupContext
+                       \accepts "VoiceCombineStaff";
+                       \accepts "StaffCombineStaff";
+               }
+               \translator {
+                       \ScoreContext
+                       \accepts "VoiceCombineStaff";
+                       \accepts "StaffCombineStaff";
+               }
+%              linewidth = 40.\mm;
+       }
+
+       \midi{ 
+               \tempo 4 = 150; 
+
+               \translator {
+                       \ThreadContext
+                       \name "VoiceCombineThread";
+               }
+               \translator {
+                       \VoiceContext
+                       \name "VoiceCombineVoice";
+                       \accepts "VoiceCombineThread";
+               }
+               \translator {
+                       \StaffContext
+                       \name "VoiceCombineStaff";
+                       \accepts "VoiceCombineVoice";
+               }
+
+               \translator {
+                       \ThreadContext
+                       \name "StaffCombineThread";
+               }
+               \translator {
+                       \VoiceContext
+                       \name "StaffCombineVoice";
+                       \accepts "StaffCombineThread";
+               }
+               \translator {
+                       \StaffContext
+                       \name "StaffCombineStaff";
+                       \accepts "StaffCombineVoice";
+               }
+               \translator {
+                       \ScoreContext
+                       \accepts "VoiceCombineStaff";
+                       \accepts "StaffCombineStaff";
+               }
+       }
+}
index e57502a0831ff75bba17044ec0019f0752683a3c..4d957c01ccdecbb17bd90984f495cc346c645eb9 100644 (file)
@@ -18,9 +18,47 @@ public:
   
 protected:
   virtual void acknowledge_element (Score_element_info);
+  virtual bool do_try_music (Music *);
 };
 
 ADD_THIS_TRANSLATOR (A2_devnull_engraver);
+/*
+  Maybe this is too crude.
+  It would probably be better to have a devnull engraver in StaffContext,
+  that acknowledges stuff and suicides it.
+ */
+bool
+A2_devnull_engraver::do_try_music (Music *m)
+{
+  if (daddy_trans_l_->id_str_ == "two"
+      && (to_boolean (get_property ("unison"))
+         || to_boolean (get_property ("unisilence"))))
+    {
+      /*
+       We mustn't junk Rest requests
+       */
+      if (Span_req *s = dynamic_cast <Span_req *> (m))
+       {
+         if (s->span_type_str_ == "slur"
+             || s->span_type_str_ == "beam"
+             || s->span_type_str_ == "crescendo"
+             || s->span_type_str_ == "decrescendo")
+           {
+             return true;
+           }
+         return false;
+       }
+      else if (Tie_req *t = dynamic_cast<Tie_req*> (m))
+       {
+         return true;
+       }
+      else if (Text_script_req *d = dynamic_cast <Text_script_req*> (m))
+       {
+         return true;
+       }
+    }
+  return false;
+}
 
 void
 A2_devnull_engraver::acknowledge_element (Score_element_info i)
index 4bd5a30495bba5541a84a8a88864bba29a61b117..7bc2a0b54b49da1a2aefabae72379ca779ea8d95 100644 (file)
@@ -40,6 +40,7 @@ static Keyword_ent the_key_tab[]={
   {"consists", CONSISTS},
   {"consistsend", CONSISTSEND},
   {"context", CONTEXT},
+  {"denies", DENIES},
   {"duration", DURATION},
   {"font", FONT},
   {"grace", GRACE},
index 215dd6939480a49b58213f9ffc20f84a196108c4..03ecf130d17297707b65d72610d8ada149d96b58 100644 (file)
@@ -142,6 +142,7 @@ yylex (YYSTYPE *s,  void * v_l)
 %token SEQUENTIAL
 %token SIMULTANEOUS
 %token CONSISTSEND
+%token DENIES
 %token DURATION
 %token EXTENDER
 %token FONT
@@ -459,6 +460,9 @@ translator_spec_body:
        | translator_spec_body ACCEPTS STRING semicolon {
                dynamic_cast<Translator_group*> ($$)-> set_acceptor (ly_scm2string ($3), true);
        }
+       | translator_spec_body DENIES STRING semicolon {
+               dynamic_cast<Translator_group*> ($$)-> set_acceptor (ly_scm2string ($3), false);
+       }
        | translator_spec_body REMOVE STRING semicolon {
                dynamic_cast<Translator_group*> ($$)-> set_element (ly_scm2string ($3), false);
        }
index a2228c73ce13da30d21186a27ce28401b7a197a7..6a3d31eaed3506c32559d155124e99423df1fb7b 100644 (file)
@@ -218,7 +218,8 @@ Slur::get_attachment (Score_element*me,Direction dir,
 
          if (str == "head")
            {
-             o = Offset (0, Stem::chord_start_f (stem));
+             o = Offset (0, Stem::head_positions (stem)
+                         [Directional_element_interface (me).get ()] * hs);
              /*
                Default position is centered in X, on outer side of head Y
               */
index 04387ef9f702f89d4dee623f6d19d69452bc2a9b..3328d266369c0eae3a688849a98d37d249d9ca5d 100644 (file)
@@ -104,12 +104,38 @@ 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 ())
+           {
+             programming_error ("bounds[LEFT]->line_l () != bounds[RIGHT]->line_l ()");
+#if 0
+             /*
+               lily crashes upon displaying this ...
+               
+              */
+             
+             gh_display (ly_str02scm ("\nspanner:mutable_property_alist_\n"));
+             gh_display (mutable_property_alist_);
+             gh_display (ly_str02scm ("\nspanner:immutable_property_alist_\n"));
+             gh_display (immutable_property_alist_);
+             gh_newline ();
+#endif
+             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 6c7ab190c5b115582ce111df7d3f80e1ef52677f..1a9bb26eab9d8c8ad183eaf1a206bd162aba4ee1 100644 (file)
@@ -147,7 +147,6 @@ VoiceContext = \translator {
        \consists "Text_engraver";
        \consists "A2_engraver";
 
-
        startSustain = #"Ped."
        stopSustain = #"*"
        stopStartSustain = #"*Ped."
index 90eddae484739cbbd762436e1609a7844632877c..4529859e7ceb7324d060f62effb55cf75782fb14 100644 (file)
@@ -35,13 +35,13 @@ VoiceContext = \translator {
 };
 \translator { \VoiceContext }
 
-GraceContext = \translator {
+ThreadContext = \translator {
        \type "Performer_group_performer";
        \name Thread;
        \consists "Note_performer";
        \consists "Tie_performer";
 };
-\translator { \GraceContext }
+\translator { \ThreadContext }
 
 \translator {
        \type "Grace_performer_group";
index 58cdb5537002b40c359b440a1c5477f306b37514..7f011a363a7a8f7d59e70d8d62344b045761248d 100644 (file)
@@ -13,46 +13,26 @@ copyright =  "public domain";
 \include "violoncello.ly"
 \include "contrabasso.ly"
 
-bassiGroup = \context GrandStaff = bassi_group <
-       \context Staff=one { 
+bassiGroup = \context PianoStaff = bassi_group <
+       \context StaffCombineStaff=one {
                \clef "bass"; 
-               \context Voice
-               \property Voice.soloADue = ##f 
                \skip 1*314; 
                \bar "|."; 
        }
-       \context Staff=two { 
+       \context StaffCombineStaff=two {
                \clef "bass"; 
-               \context Voice
-               \property Voice.soloADue = ##f 
                \skip 1*314; 
                \bar "|."; 
        }
-       \context Staff=one \partcombine Staff
-               \context Thread=one \violoncello
-               \context Thread=two \contrabasso
->
 
-%\include "coriolan-part-paper.ly"
-\include "coriolan-part-combine-paper.ly"
+       \context StaffCombineStaff=one \partcombine StaffCombineStaff
+               \context StaffCombineThread=one \violoncello
+               \context StaffCombineThread=two \contrabasso
+>
 
 \score{
        \bassiGroup
-       \paper{
-               \translator { \HaraKiriStaffContext }
-               \translator {
-                       \StaffContext
-                       \consists "Slur_engraver";
-                       \consists "Rest_engraver";
-                       \consists "Tie_engraver";
-               }
-               \translator{
-                       \VoiceContext
-                       \remove "Rest_engraver";
-                       \remove "Slur_engraver";
-                       \remove "Tie_engraver";
-               }
-       }
+       \include "coriolan-part-combine-paper.ly"
        \include "coriolan-midi.ly"
 }
 
index ba81ffaf754acc44d86ebbbddab3c180f14f9f1c..544e817be3d45567a8acfad97df022efeed99242 100644 (file)
@@ -1,18 +1,38 @@
 \midi{ 
        \tempo 4 = 150; 
+
+       \translator {
+               \ThreadContext
+               \name "VoiceCombineThread";
+       }
        \translator {
                \VoiceContext
-               \name "VoiceOne";
+               \name "VoiceCombineVoice";
+               \accepts "VoiceCombineThread";
+       }
+       \translator {
+               \StaffContext
+               \name "VoiceCombineStaff";
+               \accepts "VoiceCombineVoice";
+       }
+
+       \translator {
+               \ThreadContext
+               \name "StaffCombineThread";
        }
        \translator {
                \VoiceContext
-               \name "VoiceTwo";
-               %\remove "Span_dynamic_engraver";
-               %\remove "Dynamic_engraver";
+               \name "StaffCombineVoice";
+               \accepts "StaffCombineThread";
        }
        \translator {
                \StaffContext
-               \accepts "VoiceOne";
-               \accepts "VoiceTwo";
+               \name "StaffCombineStaff";
+               \accepts "StaffCombineVoice";
+       }
+       \translator {
+               \ScoreContext
+               \accepts "VoiceCombineStaff";
+               \accepts "StaffCombineStaff";
        }
 }
index ea63eb4cd2d2e9586cc0c6385cfd6a3c18fc0ec6..6dde56b9bdc7b1d1106b384158c2deb4151b9957 100644 (file)
        textheight = 295.0\mm;
        linewidth = 180.0\mm;
 
-       % slurs are never beautiful (no steep slurs)
-       slur_beautiful = 0.0;
-
-       \translator {
+       \translator{ \HaraKiriStaffContext }
+       %
+       % The Voice combine hierarchy
+       %
+       \translator{
+               \ThreadContext
+               \name "VoiceCombineThread";
+               \consists "Rest_engraver";
+       }
+       \translator{
                \VoiceContext
-               dynamicPadding = #2  % urg, in \pt
-               dynamicMinimumSpace = #6  % urg, in \pt
-               \remove Rest_engraver;
-               \remove Slur_engraver;
-               \remove Tie_engraver;
+               \name "VoiceCombineVoice";
+               soloText = #"I."
+               soloIIText = #"II."
+               \remove "Rest_engraver";
+               \accepts "VoiceCombineThread";
+               \consists "A2_devnull_engraver";
        }
-       \translator {
-               \StaffContext
-%              \consists Slur_engraver;
-               \consists Tie_engraver;
+       \translator{
+               \HaraKiriStaffContext
+%%             \consists "Mark_engraver";
+               \name "VoiceCombineStaff";
+               \accepts "VoiceCombineVoice";
        }
-       \translator {
+
+       %
+       % The Staff combine hierarchy
+       %
+       \translator{
+               \ThreadContext
+               \name "StaffCombineThread";
+               \remove "A2_devnull_engraver";
+%%                     \remove "Note_heads_engraver";
+       }
+       \translator{
                \VoiceContext
-               \name "VoiceOne";
+               \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";
 
-               dynamicPadding = #2  % urg, in \pt
-               dynamicMinimumSpace = #6  % urg, in \pt
+               \remove "Piano_pedal_engraver";
+               \remove "Script_engraver";
+               \remove "Script_column_engraver";
+               \remove "Rhythmic_column_engraver";
+               \remove "Slur_engraver";
+               \remove "Tie_engraver";
 
-               %%\consists "Line_number_engraver";
-               verticalDirection = #1
-               stemVerticalDirection = #1
-               %dynamicDirection = #-1
-               dynamicDirection = #1
+               \consists "A2_devnull_engraver";
        }
        \translator {
-               \VoiceContext
-               \name "VoiceTwo";
-               %%\consists "Line_number_engraver";
-               verticalDirection = #-1
-               stemVerticalDirection = #-1
-               \remove "Dynamic_engraver";
-               %% Aargh: absulute dynamics:
-               \remove "Text_engraver";
+               \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
+
+               \consists "Piano_pedal_engraver";
+               \consists "Script_engraver";
+               \consists "Script_column_engraver";
+               \consists "Rhythmic_column_engraver";
+               \consists "Slur_engraver";
+               \consists "Tie_engraver";
+               \consists "A2_devnull_engraver";
        }
-       \translator { 
-               \HaraKiriStaffContext 
-               \accepts "VoiceOne";
-               \accepts "VoiceTwo";
+       \translator {
+               \StaffGroupContext
+               \accepts "VoiceCombineStaff";
+               \accepts "StaffCombineStaff";
        }
-       \translator { 
-               \OrchestralScoreContext 
+       \translator {
+               %\ScoreContext
+               %\consists "Mark_engraver";
+               \OrchestralScoreContext
+               \accepts "VoiceCombineStaff";
+               \accepts "StaffCombineStaff";
+
+               barScriptPadding = #2.0 % dimension \pt
+               markScriptPadding = #4.0
+
                %% urg: in pt?
                barNumberScriptPadding = #15
                %% URG: this changes dynamics too
                %%textStyle = #"italic"
                timeSignatureStyle = #"C"
                instrumentScriptPadding = #55  %% urg, this is in pt
-               instrScriptPadding = #35 %% urg, this is in pt
+               instrScriptPadding = #40 %% urg, this is in pt
                marginScriptHorizontalAlignment = #1
                maximumRestCount = #1
        }
index 4dcda1e47cae45d3c0cffe537a98a1cb075f991f..3aa73c157a25b137a22904dcd22c472632c353c4 100644 (file)
        textheight = 295.0\mm;
        linewidth = 180.0\mm;
 
-       % slurs are never beautiful (no steep slurs)
-       slur_beautiful = 0.0;
+       \translator{ \HaraKiriStaffContext }
+       %
+       % The Voice combine hierarchy
+       %
+       \translator{
+               \ThreadContext
+               \name "VoiceCombineThread";
+               \consists "Rest_engraver";
+       }
+       \translator{
+               \VoiceContext
+               \name "VoiceCombineVoice";
+               soloText = #"I."
+               soloIIText = #"II."
+               \remove "Rest_engraver";
+               \accepts "VoiceCombineThread";
+               \consists "A2_devnull_engraver";
+       }
+       \translator{
+               \HaraKiriStaffContext
+               \consists "Mark_engraver";
+               \name "VoiceCombineStaff";
+               \accepts "VoiceCombineVoice";
+       }
 
-       \translator {
+       %
+       % The Staff combine hierarchy
+       %
+       \translator{
                \ThreadContext
-               \consists Rest_engraver;
+               \name "StaffCombineThread";
+%%
+                       \remove "A2_devnull_engraver";
+%%                     \remove "Note_heads_engraver";
        }
-       \translator {
+       \translator{
                \VoiceContext
-               \remove Rest_engraver;
-               \remove Slur_engraver;
-               \remove Tie_engraver;
+               \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";
        }
        \translator {
-               \StaffContext
-%              \consists Slur_engraver;
-               \consists Tie_engraver;
+               \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";
+
+               \consists "A2_devnull_engraver";
        }
-       \translator { 
-               \ScoreContext skipBars = ##t 
+       \translator {
+               \StaffGroupContext
+               \accepts "VoiceCombineStaff";
+               \accepts "StaffCombineStaff";
+       }
+       \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
index a4d113f51d0f6a5e850af2d97369946bccc8fc5c..da6d84ab9a2af99d0e5a0c0e3a56b530a3103242 100644 (file)
@@ -2,48 +2,14 @@
        textheight = 295.0\mm;
        linewidth = 180.0\mm;
 
-       % slurs are never beautiful (no steep slurs)
-       slur_beautiful = 0.0;
+       \translator{ \HaraKiriStaffContext }
 
        \translator {
-               \VoiceContext
-               %dynamicPadding = #5  % urg, in \pt
-               %dynamicMinimumSpace = #10  % urg, in \pt
-               \remove Rest_engraver;
-               \remove Slur_engraver;
-               \remove Tie_engraver;
-       }
-       \translator {
-               \StaffContext
-%              \consists Slur_engraver;
-               \consists Tie_engraver;
-       }
-       \translator {
-               \VoiceContext
-               \name "VoiceOne";
-               %%\consists "Line_number_engraver";
-               verticalDirection = #1
-               stemVerticalDirection = #1
-               %dynamicDirection = #-1
-               dynamicDirection = #1
-       }
-       \translator {
-               \VoiceContext
-               \name "VoiceTwo";
-               %%\consists "Line_number_engraver";
-               verticalDirection = #-1
-               stemVerticalDirection = #-1
-               \remove "Dynamic_engraver";
-               %% Aargh: absulute dynamics:
-               \remove "Text_engraver";
-       }
-       \translator { 
-               \OrchestralPartStaffContext 
-               \accepts "VoiceOne";
-               \accepts "VoiceTwo";
-       }
-       \translator { 
-               \ScoreContext skipBars = ##t 
+               \ScoreContext
+               skipBars = ##t 
+
+               barScriptPadding = #2.0 % dimension \pt
+               markScriptPadding = #4.0
                %% urg: in pt?
                barNumberScriptPadding = #15
                %% URG: this changes dynamics too
index 06cff3bac740710458442c9a85d62472a9f446b3..05aebee9006abaaf5ce16708f432f3484fd6a855 100644 (file)
@@ -51,46 +51,41 @@ violiniGroup = \context GrandStaff = violini_group <
        \violinoIIStaff
 >
 
-violiGroup = \context GrandStaff = violi_group <
-       \context Staff=one { 
+violiGroup = \context PianoStaff = violi_group <
+       \context StaffCombineStaff=one {
                \clef "alto"; 
-               \context Voice
-               \property Voice.soloADue = ##f 
                \skip 1*314; 
                \bar "|."; 
        }
-       \context Staff=two { 
+       \context StaffCombineStaff=two {
                \clef "alto"; 
-               \context Voice
-               \property Voice.soloADue = ##f 
                \skip 1*314; 
                \bar "|."; 
        }
-       \context Staff=one \partcombine Staff
-               \context Thread=one \violaI
-               \context Thread=two \violaII
+
+       \context StaffCombineStaff=one \partcombine StaffCombineStaff
+               \context StaffCombineThread=one \violaI
+               \context StaffCombineThread=two \violaII
 >
 
-bassiGroup = \context GrandStaff = bassi_group <
-       \context Staff=one { 
+bassiGroup = \context PianoStaff = bassi_group <
+       \context StaffCombineStaff=one {
                \clef "bass"; 
-               \context Voice
-               \property Voice.soloADue = ##f 
                \skip 1*314; 
                \bar "|."; 
        }
-       \context Staff=two { 
+       \context StaffCombineStaff=two {
                \clef "bass"; 
-               \context Voice
-               \property Voice.soloADue = ##f 
                \skip 1*314; 
                \bar "|."; 
        }
-       \context Staff=one \partcombine Staff
-               \context Thread=one \violoncello
-               \context Thread=two \contrabasso
+
+       \context StaffCombineStaff=one \partcombine StaffCombineStaff
+               \context StaffCombineThread=one \violoncello
+               \context StaffCombineThread=two \contrabasso
 >
 
+
 archiGroup = \context StaffGroup = archi_group <
        \violiniGroup
        \violiGroup
index cfa67d6dcb5e3ab882532ccfd8367f5504e7d649..3649bdd732b9aed3f8fe7579a25f53d97f4e8560 100644 (file)
@@ -413,7 +413,6 @@ violaI = \notes \relative c {
        c4\pp r r2 |
        c4 r r2 |
        c4 r r2 |
-       \skip 1*10;
 }
 
 %%% urg
index 88dc525e143684cc6e96c302cfe2890740759fd9..05b75c0f8ea47a39b4d5d32cf9a68653015195b1 100644 (file)
@@ -413,5 +413,4 @@ violaII = \notes \relative c {
        c4\pp r r2 |
        c4 r r2 |
        c4 r r2 |
-       \skip 1*10;
 }
index 3ebf7f859120f66ed8359f7ea2738b6be3f4951e..ae9ac83b2baa1b3805a92fc777559e0c878509e4 100644 (file)
@@ -13,47 +13,26 @@ copyright =  "public domain";
 \include "viola-1.ly"
 \include "viola-2.ly"
 
-violiGroup = \context GrandStaff = violi_group <
-       \context Staff=one { 
+violiGroup = \context PianoStaff = violi_group <
+       \context StaffCombineStaff=one {
                \clef "alto"; 
-               \context Voice
-               \property Voice.soloADue = ##f 
                \skip 1*314; 
                \bar "|."; 
        }
-       \context Staff=two { 
+       \context StaffCombineStaff=two {
                \clef "alto"; 
-               \context Voice
-               \property Voice.soloADue = ##f 
                \skip 1*314; 
                \bar "|."; 
        }
-       \context Staff=one \partcombine Staff
-               \context Thread=one \violaI
-               \context Thread=two \violaII
->
 
-%\include "coriolan-part-paper.ly"
-\include "coriolan-part-combine-paper.ly"
+       \context StaffCombineStaff=one \partcombine StaffCombineStaff
+               \context StaffCombineThread=one \violaI
+               \context StaffCombineThread=two \violaII
+>
 
 \score{
        \violiGroup
-       \paper{
-               \translator { \HaraKiriStaffContext }
-               \translator {
-                       \StaffContext
-                       \consists "Slur_engraver";
-                       \consists "Rest_engraver";
-                       \consists "Tie_engraver";
-               }
-               \translator{
-                       \VoiceContext
-                       soloADue = ##f 
-                       \remove "Rest_engraver";
-                       \remove "Slur_engraver";
-                       \remove "Tie_engraver";
-               }
-       }
+       \include "coriolan-part-combine-paper.ly"
        \include "coriolan-midi.ly"
 }
 
index 1f4d9132e006e6ddde3905621514f2df5450fc2a..2574afd6191d1ee4da003b288ac245193c6a64d6 100644 (file)
@@ -95,4 +95,6 @@
 
     ((loose-end -1 1) . (-4 . 0))
     ((loose-end -1 -1) . (-4 . 0))
+    ((loose-end 1 1) . (-0.4 . 0))
+    ((loose-end 1 -1) . (-0.4 . 0))
     ))