]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.128.jcn1
authorJan Nieuwenhuizen <janneke@gnu.org>
Mon, 5 Feb 2001 15:34:18 +0000 (16:34 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 5 Feb 2001 15:34:18 +0000 (16:34 +0100)
1.3.128.jcn1
============

* Small doco fixes.

* Added user control for devnull engravers.

17 files changed:
CHANGES
Documentation/user/fdl.itexi
Documentation/user/refman.itely
VERSION
input/bugs/score-dynamics.ly
input/regression/allfontstyle.ly
input/regression/bar-number.ly
input/regression/bar-scripts.ly
input/tutorial/orchestral-score.ly
lily/thread-devnull-engraver.cc
lily/voice-devnull-engraver.cc
ly/engraver.ly
mutopia/J.S.Bach/Duette/viola-part.ly
mutopia/J.S.Bach/Duette/violino-part.ly
mutopia/J.S.Bach/Duette/violoncello-part.ly
mutopia/J.S.Bach/Solo-Cello-Suites/solo-cello-suite-ii.ly
scm/translator-property-description.scm

diff --git a/CHANGES b/CHANGES
index fc3f3695372358a0a3d358faa378997a80b80fcd..31c283a9e7aa0bfa3dfa30d1a1dbb5d99a9be9a7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,13 @@
+1.3.128.jcn1
+============
+
+* Small doco fixes.
+
+* Added user control for devnull engravers.
+
 1.3.127.jcn3
 ============
+
 * Mutopia preparations and Coriolan fixes.
 
 * Small beam cleanup, changed y-position-hs,height-hs user overrides to
index 361f90f7bb53f23b0637958490ab480692bd5d3f..5ef0312befe74046ed198a5f22a79c94b37b1fdb 100644 (file)
@@ -1,6 +1,8 @@
 
 @node GNU Free Documentation License
-@appendixsec GNU Free Documentation License
+@c @appendixsec GNU Free Documentation License
+@c Hmm, only have one section in appendix: move up to chapter level
+@appendix GNU Free Documentation License
 
 @cindex FDL, GNU Free Documentation License
 @center Version 1.1, March 2000
index 018f69c99705d27c1e20fc94e79c4c2298d85035..10723592617cc65c83837f9b01e9e3f12679f109 100644 (file)
@@ -1631,7 +1631,7 @@ This is a short-cut for doing
 @end example
 
 You are encouraged to use @code{\repeat} for repetitions.  See
-@ref{Repeat}, and the documentation of @code{whichBar} in
+@ref{Repeats}, and the documentation of @code{whichBar} in
 @ref{(lilypond-internals)LilyPond context properties}.
 
 
diff --git a/VERSION b/VERSION
index 65caf5f0edc9a85867e9c7e2515ed800a64d34ef..a09032fb6479cf686e5559f01a6e98d6ed5f80b7 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=128
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 2c4a6500e122e3c182d039c0bc68c7990d1b065f..9389c525a9a6b7ca4aa23ef3410ccc63ca6a7dca 100644 (file)
@@ -16,104 +16,79 @@ contrabasso = \notes\relative c'' {
   c2\pp c d1 e
 }
 
-flautiStaff =  \notes \context VoiceCombineStaff = flauti <
- \context VoiceCombineVoice=oneBassi \End
- \context VoiceCombineVoice=twoBassi \End
-  \context VoiceCombineVoice=Flauti \partcombine VoiceCombineVoice
-    \context VoiceCombineThread=oneFlauti \violoncello
-    \context VoiceCombineThread=twoFlauti \contrabasso
+flautiStaff =  \notes \context Staff = flauti <
+ \context Voice=oneBassi \End
+ \context Voice=twoBassi \End
+  \context Voice=Flauti \partcombine Voice
+    \context Thread=oneFlauti \violoncello
+    \context Thread=twoFlauti \contrabasso
 >
 
+staffCombineProperties = {
+       \property Voice.devNullThread = #'unisolo
+       \property Voice.soloADue = ##t
+       \property Voice.soloText = #""
+       \property Voice.soloIIText = #""
+       % This is non-conventional, but currently it is
+       % the only way to tell the difference.
+       \property Voice.aDueText = #"\\`a2"
+       \property Voice.splitInterval = #'(1 . 0)
+       \property Voice.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
+}
 
 \score {
   <
   \flautiStaff
 
   \context PianoStaff = bassi_group \notes <
-    \context StaffCombineStaff=oneBassi \End
-    \context StaffCombineStaff=twoBassi \End
+    \context Staff=oneBassi \End
+    \context Staff=twoBassi \End
 
-    \context StaffCombineStaff=oneBassi \partcombine StaffCombineStaff
-      \context StaffCombineVoice=oneBassi \violoncello
-      \context StaffCombineVoice=twoBassi \contrabasso
+    \context Staff=oneBassi \partcombine Staff
+      \context Voice=oneBassi { \staffCombineProperties \violoncello }
+      \context Voice=twoBassi { \staffCombineProperties \contrabasso }
  >
 
 >
-  \paper{
+ >
+  \paper {
     % \paperSixteen
-
-    %textheight = 290.0\mm;
-    %linewidth = 195.0\mm;
-    textheight = 285.0\mm;
-    linewidth = 190.0\mm;
-
-    \translator{ \HaraKiriStaffContext }
-    %
-    % The Voice combine hierarchy
-    %
+    linewidth = 80 * \staffspace;
+    textheight = 200 * \staffspace;
     \translator{
       \ThreadContext
-      \name "VoiceCombineThread";
       \consists "Rest_engraver";
     }
     \translator{
       \VoiceContext
-      \name "VoiceCombineVoice";
+      \remove "Rest_engraver";    
+
+      % The staff combine (bassi part) needs a
+      % thread_devnull_engraver here.
+      % Instead of maintaining two separate hierarchies,
+      % we switch add it, but switch it off immideately.
+      % The staff combine parts switch it on.
+      devNullThread = #'never
+      \consists "Thread_devnull_engraver";
+
       soloText = #"I."
       soloIIText = #"II."
-      \remove "Rest_engraver";
-      \accepts "VoiceCombineThread";
+      soloADue = ##f
     }
     \translator{
       \HaraKiriStaffContext
       \consists "Mark_engraver";
-      \name "VoiceCombineStaff";
-      \accepts "VoiceCombineVoice";
-    }
-
-    %
-    % The Staff combine hierarchy
-    %
-    \translator{
-      \ThreadContext
-      \name "StaffCombineThread";
-    }
-    \translator{
-      \VoiceContext
-      \name "StaffCombineVoice";
-      \accepts "StaffCombineThread";
-      \consists "Thread_devnull_engraver";
-    }
-    \translator {
-      \HaraKiriStaffContext
-      \name "StaffCombineStaff";
-      \accepts "StaffCombineVoice";
-
-      soloADue = ##t
-      soloText = #""
-      soloIIText = #""
-      % This is non-conventional, but currently it is
-      % the only way to tell the difference.
-      aDueText = #"\\`a2"
-      splitInterval = #'(1 . 0)
-      changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
     }
     \translator {
-      \StaffGroupContext
-      \accepts "VoiceCombineStaff";
-      \accepts "StaffCombineStaff";
-    }
-    \translator{ \HaraKiriStaffContext }
-
-    \translator {
-      %\ScoreContext
       \OrchestralScoreContext
-      \accepts "VoiceCombineStaff";
-      \accepts "StaffCombineStaff";
-      TimeSignature \override #'style = #'C
-      skipBars = ##t 
+      skipBars = ##t
+      % Hmm
+      currentBarNumber = #218
       BarNumber \override #'padding = #3
       RestCollision \override #'maximum-rest-count = #1
+      marginScriptHorizontalAlignment = #1
+      TimeSignature \override #'style = #'C
     }
+    \translator { \HaraKiriStaffContext }
   }
 }
+
index 8c48cd1780fc580b3966d527ddb173f16b29bccb..d25e2391c68185a8b3759b0eda4720fdf36b1641 100644 (file)
@@ -12,6 +12,6 @@
                         f4-\ff^""^"Largo" \mark "B"; g 
        }
        \paper { linewidth = -1.0;
-       \translator { \BarNumberingStaffContext}
+       % \translator {\BarNumberingStaffContext} }
        }
 }
index 502045ed54e0e45a5beca02bb120bcbcab2142ce..e0617c0acc46273d4b41d448e1158a2488486070 100644 (file)
@@ -12,8 +12,6 @@ texidoc="Bar number settable and padding adjustable.";
   }
   \paper {
     linewidth = 40*\staffspace;
-    \translator {
-      \BarNumberingStaffContext
-    }
+    % \translator { \BarNumberingStaffContext }
   }
 }
index 644550de3f8f88af9056c38616633a81304fefd0..7808e156f1a5379719d2e31bd75d22b7737a316a 100644 (file)
@@ -24,7 +24,8 @@ grstaff =  \notes \context GrandStaff <
 >
 
 scpaper =  \paper {\translator {\OrchestralScoreContext}}
-stpaper =  \paper{ \translator {\BarNumberingStaffContext }}
+% stpaper =  \paper{ \translator {\BarNumberingStaffContext }}
+stpaper =  \paper{ }
 
 scscore =  \score { \grstaff \paper {
 \scpaper
index 8926afb36dc0f0b6dd4fc7069a2b41ae500e3a62..0b0585013f6846dc3a58e75ce805bd89996e540b 100644 (file)
@@ -5,6 +5,30 @@
 % #(set! point-and-click #t)
 #(define text-flat '((font-relative-size . -2) (music "accidentals--1")))
 
+staffCombineStaffProperties = {
+       \property Staff.devNullThread = #'unisolo
+       \property Staff.soloADue = ##t
+       \property Staff.soloText = #""
+       \property Staff.soloIIText = #""
+       % This is non-conventional, but currently it is
+       % the only way to tell the difference.
+       \property Staff.aDueText = #"\\`a2"
+       \property Staff.splitInterval = #'(1 . 0)
+       \property Staff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
+}
+
+staffCombineVoiceProperties = {
+       \property Voice.devNullThread = #'unisolo
+       \property Voice.soloADue = ##t
+       \property Voice.soloText = #""
+       \property Voice.soloIIText = #""
+       % This is non-conventional, but currently it is
+       % the only way to tell the difference.
+       \property Voice.aDueText = #"\\`a2"
+       \property Voice.splitInterval = #'(1 . 0)
+       \property Voice.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
+}
+
 
 % Coriolan 218-222
 flautoI = \notes\relative c'' {
@@ -190,17 +214,8 @@ contrabasso = \notes\relative c {
          \context Thread=two \violaII
       >
       \context GrandStaff=bass <
-        \property GrandStaff.soloADue = ##t
-        \property GrandStaff.soloText = #""
-        \property GrandStaff.soloIIText = #""
-       % This is non-conventional, but currently it is
-       % the only way to tell the difference.
-        \property GrandStaff.aDueText = #"\\`a2"
-        \property GrandStaff.splitInterval = #'(1 . 0)
-        \property GrandStaff.changeMoment =
-         #`(,(make-moment 1 1) . ,(make-moment 1 1))
-
         \context Staff=one <
+         %\staffCombineStaffProperties
          \property Staff.midiInstrument = #"cello"
          \property Staff.instrument = #'((kern . 0.5)
            (lines "Violoncello" (rows "    e") (rows "Contrabasso")))
@@ -208,6 +223,7 @@ contrabasso = \notes\relative c {
          \clef bass;
        >
        \context Staff=two <
+         %\staffCombineStaffProperties
          \property Staff.midiInstrument = #"contrabass"
          \property Staff.instrument = "Contrabasso"
          \property Staff.instr = "C.B."
@@ -215,8 +231,8 @@ contrabasso = \notes\relative c {
          \skip 1*4; % sustain clef
        >
        \context Staff=one \partcombine Staff
-         \context Voice=one \violoncello
-         \context Voice=two \contrabasso
+         \context Voice=one { \staffCombineVoiceProperties \violoncello }
+         \context Voice=two { \staffCombineVoiceProperties \contrabasso }
       >
     >
   >
@@ -231,30 +247,26 @@ contrabasso = \notes\relative c {
     \translator{
       \VoiceContext
       \remove "Rest_engraver";    
-      soloText = #"I."
-      soloIIText = #"II."
-      soloADue = ##f
-      % We must override the settings for Staff level
-      % with the default values, here.
-      aDueText = #"\\`a2"
-      splitInterval = #'(0 . 1)
-      changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
+
+      % The staff combine (bassi part) needs a
+      % thread_devnull_engraver here.
+      % Instead of maintaining two separate hierarchies,
+      % we switch add it, but switch it off immideately.
+      % The staff combine parts switch it on.
+      devNullThread = #'never
+      \consists "Thread_devnull_engraver";
     }
     \translator{
       \HaraKiriStaffContext
       \consists "Mark_engraver";
-      soloADue = ##t
-      soloText = #""
-      soloIIText = #""
-      % This is non-conventional, but currently it is
-      % the only way to tell the difference.
-      aDueText = #"\\`a2"
-      splitInterval = #'(1 . 0)
-      changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
     }
     \translator {
       \OrchestralScoreContext
       skipBars = ##t
+
+      soloText = #"I."
+      soloIIText = #"II."
+
       % Hmm
       currentBarNumber = #218
       BarNumber \override #'padding = #3
@@ -262,7 +274,6 @@ contrabasso = \notes\relative c {
       marginScriptHorizontalAlignment = #1
       TimeSignature \override #'style = #'C
     }
-    \translator { \HaraKiriStaffContext }
   }
 }
 
index 4006c476a243d2f539bec3039a9abb135794fef5..14f6754e0ea23cd0c0e43f2459b43cb842a0e699 100644 (file)
@@ -25,23 +25,18 @@ ADD_THIS_TRANSLATOR (Thread_devnull_engraver);
 void
 Thread_devnull_engraver::acknowledge_grob (Grob_info i)
 {
-  /*
-    FIXME: coriolan-fix hack -- ff  geen inspiratie
-    
-    We should have at least three modes:
-    
-      1. Never -- do nothing
-      2. Allways -- junk everythingallways
-      3. Regular: junk according to two/unison/unisilence/soloADue
+  SCM s = get_property ("devNullThread");
+#if 0
+  /* No need */
+  if (gh_equal_p (s, ly_symbol2scm ("never")))
+    return;
+#endif
 
-    but how shall we do that?
-
-    Hmm, maybe just: threadDevNull = 'never|'allways|...
-   */
-  if (!to_boolean (get_property ("disableDevNullThread"))
-      && daddy_trans_l_->id_str_.left_str (3) == "two"
-      && (to_boolean (get_property ("unison"))
-         || to_boolean (get_property ("unisilence")))
-      && to_boolean (get_property ("soloADue")))
+  if (gh_equal_p (s, ly_symbol2scm ("allways"))
+      || (gh_equal_p (s, ly_symbol2scm ("unisolo"))
+         && daddy_trans_l_->id_str_.left_str (3) == "two"
+         && (to_boolean (get_property ("unison"))
+             || to_boolean (get_property ("unisilence")))
+         && to_boolean (get_property ("soloADue"))))
     i.elem_l_->suicide ();
 }
index 63d1fde94022fdd40d8d4c130fe799a270c552b0..ed34540a4b05fa952f54308b8d46a383b0805317 100644 (file)
@@ -26,6 +26,7 @@ ADD_THIS_TRANSLATOR (Voice_devnull_engraver);
 static char const *eat_spanners[] = {
   "beam-interface",
   "slur",
+  "tie",
   "dynamic-interface",
   "crescendo-interface",
   0
@@ -34,9 +35,18 @@ static char const *eat_spanners[] = {
 bool
 Voice_devnull_engraver::try_music (Music *m)
 {
-  if (daddy_trans_l_->id_str_.left_str (3) == "two"
-      && (to_boolean (get_property ("unison"))
-         || to_boolean (get_property ("unisilence"))))
+  SCM s = get_property ("devNullVoice");
+#if 0
+  /* No need */
+  if (gh_equal_p (s, ly_symbol2scm ("never")))
+    return;
+#endif
+
+  if (gh_equal_p (s, ly_symbol2scm ("allways"))
+      || (gh_equal_p (s, ly_symbol2scm ("unisolo"))
+         &&daddy_trans_l_->id_str_.left_str (3) == "two"
+         && (to_boolean (get_property ("unison"))
+             || to_boolean (get_property ("unisilence")))))
     {
       for (char const **p = eat_spanners; *p; p++)
        {
@@ -69,9 +79,18 @@ static char const *junk_interfaces[] = {
 void
 Voice_devnull_engraver::acknowledge_grob (Grob_info i)
 {
-  if (daddy_trans_l_->id_str_.left_str (3) == "two"
-      && (to_boolean (get_property ("unison"))
-         || to_boolean (get_property ("unisilence"))))
+  SCM s = get_property ("devNullVoice");
+#if 0
+  /* No need */
+  if (gh_equal_p (s, ly_symbol2scm ("never")))
+    return;
+#endif
+
+  if (gh_equal_p (s, ly_symbol2scm ("allways"))
+      || (gh_equal_p (s, ly_symbol2scm ("unisolo"))
+         && daddy_trans_l_->id_str_.left_str (3) == "two"
+         && (to_boolean (get_property ("unison"))
+             || to_boolean (get_property ("unisilence")))))
     for (char const **p = junk_interfaces; *p; p++)
       if (i.elem_l_->has_interface (ly_symbol2scm (*p)))
        {
@@ -79,3 +98,4 @@ Voice_devnull_engraver::acknowledge_grob (Grob_info i)
          return;
        }
 }
index 66664f7d28317964f9a916d8c49d2465dcd25393..01a00e1bb5cc5aa73f5efc8b41e27ed44aad4689 100644 (file)
@@ -116,6 +116,7 @@ VoiceContext = \translator {
        \consists "Melisma_engraver";
        \consists "Text_engraver";
        \consists "A2_engraver";
+       devNullVoice = #'unisolo
        \consists "Voice_devnull_engraver";
 
        \consists "Script_engraver";
@@ -179,13 +180,15 @@ GraceContext=\translator {
 
 ThreadContext = \translator{
        \type Engraver_group_engraver;
+       \name Thread;
+       
+       devNullThread = #'unisolo
        \consists "Thread_devnull_engraver";
        \consists "Note_heads_engraver";
        \consists "Note_head_line_engraver";
        \consists "Output_property_engraver";   
        Generic_property_list = #generic-thread-properties
        \consists "Property_engraver";
-       \name Thread;
 }
 
 GrandStaffContext=\translator{
@@ -355,6 +358,9 @@ ScoreContext = \translator {
        splitInterval = #'(0 . 1)
        changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
 
+       %devNullThread = #'unisolo
+       %devNullVoice = #'unisolo
+
        StaffMinimumVerticalExtent = #(cons -4.0 4.0)
 
        barAuto = ##t
index ef7760a61a28230f1b1c07d9928c3eb8562d65c3..acec5f0502a67dbf1cbbbec73a580c9c5ea4243c 100644 (file)
@@ -18,7 +18,7 @@ copyright =    "Public Domain";
 \score{
   \violaIStaff
   \paper{
-    \translator { \BarNumberingStaffContext }
+    %\translator { \BarNumberingStaffContext }
   }
   \midi{
 %urg, real/duration
@@ -36,7 +36,7 @@ copyright =    "Public Domain";
   \violaIiStaff
   \paper{
 %    castingalgorithm=0.0;
-    \translator { \BarNumberingStaffContext }
+    %\translator { \BarNumberingStaffContext }
     %\translator { \ScoreContext skipBars = 1; }
   }
   \midi{
index 1e72b403be3613cc20622e8565043f95b0a7379a..4f535e7fd85e030046f4b362072cf7ee20aa5f10 100644 (file)
@@ -18,7 +18,7 @@ copyright =    "Public Domain";
 \score{
   \violinoIStaff
   \paper{
-    \translator { \BarNumberingStaffContext }
+    %\translator { \BarNumberingStaffContext }
   }
   \midi{
 %    \tempo 4. = 69;
@@ -34,7 +34,7 @@ copyright =    "Public Domain";
 \score{
   \violinoIiStaff
   \paper{
-    \translator { \BarNumberingStaffContext }
+    %\translator { \BarNumberingStaffContext }
 %    castingalgorith=0;
   }
   \midi{
index 26449b6eca8041dedca7cbe5d2068d5d577d6c8d..ba58376170048a1b7b2ec9f3e3c5bebc11710233 100644 (file)
@@ -18,7 +18,7 @@ copyright =    "Public Domain";
 \score{
   \violoncelloIStaff
   \paper{
-    \translator { \BarNumberingStaffContext }
+    %\translator { \BarNumberingStaffContext }
   }
   \midi{
 %urg, real/duration
@@ -36,7 +36,7 @@ copyright =    "Public Domain";
   \violoncelloIiStaff
   \paper{
     %castingalgorithm=0.;
-    \translator { \BarNumberingStaffContext }
+    %\translator { \BarNumberingStaffContext }
   }
   \midi{
 %    \tempo 2 = 96;
index b592904068479ed0f607f038123718e8e46e2c4c..04f1bf6d1ffd97c393cdad3adb01cc3b7abbe43d 100644 (file)
@@ -2,7 +2,7 @@
 
 \paper {
 linewidth = 180.\mm;
-\translator { \BarNumberingStaffContext }
+\translator { \BarNumberingStaffContext }
 }
 
 % \include "prelude-" + \instr + ".ly";
index 7210e92b287c935bf79ac5309e1d3ae0726bb882..4e5ab9c7fdec002b8ced731965b0717bfd9ce964 100644 (file)
@@ -116,7 +116,26 @@ arpeggios that cross staffs.
 (translator-property-description 'crescendoText string? "Text to print at start of non-hairpin crecscendo, ie: @samp{cresc.}")
 (translator-property-description 'crescendoSpanner symbol? "Type of spanner to be used for crescendi.  One of: @samp{hairpin}, @samp{line}, @samp{dashed-line}, @samp{dotted-line}.  If unset, hairpin type is used.")
 (translator-property-description 'decrescendoText string? "Text to print at start of non-hairpin decrecscendo, ie: @samp{dim.}")
-(translator-property-description 'disableDevNullThread boolean? "temp hack: turn off thread-devnull-engraver")
+(translator-property-description 'devNullThread symbol? "User control of Thread_devnull_engraver: one of
+@table @samp
+@item unisolo
+Behave in normal way: remove one set of grobs when threads are in unisolo.
+@item allways:
+Remove any grob that comes along.
+@item never:
+Do nothing.
+@end table
+")
+(translator-property-description 'devNullVoice symbol? "User control of Voice_devnull_engraver: one of
+@table @samp
+@item unisolo
+Behave in normal way: remove spanners when in unisolo.
+@item allways:
+Remove any spanners that come along.
+@item never:
+Do nothing.
+@end table
+")
 (translator-property-description 'decrescendoSpanner symbol? "Type of spanner to be used for decrescendi.  One of: @samp{hairpin}, @samp{line}, @samp{dashed-line}, @samp{dotted-line}.  If unset, hairpin type is used.")
 (translator-property-description 'currentBarNumber integer? "Contains the current barnumber. This property is incremented at
 every barline.