]> git.donarmstrong.com Git - lilypond.git/commitdiff
release commit
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 9 Jan 2004 11:35:44 +0000 (11:35 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 9 Jan 2004 11:35:44 +0000 (11:35 +0000)
14 files changed:
ChangeLog
Documentation/topdocs/NEWS.texi
Documentation/user/internals.itely
Documentation/user/refman.itely
VERSION
input/test/ancient-font.ly
input/test/staff-lines.ly
input/test/staff-size.ly
lily/axis-group-engraver.cc
lily/bar-check-iterator.cc
lily/score-engraver.cc
lily/translator-group.cc
scm/define-translator-properties.scm
stepmake/bin/add-html-footer.py

index d59be95f030cd76065d074026069d75772759b58..a0e7bd48c8bf1287377383040338a6c2886f13cb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,21 @@
 2004-01-09  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
+       * stepmake/bin/add-html-footer.py (built): add Wiki links to
+       footer.
+
+       * lily/parser.yy (translator_mod): allow \with { \remove .. }
+
+       * lily/bar-check-iterator.cc (process): only warn if
+       barCheckLastFail was changed.
+
+       * scm/define-translator-properties.scm (barCheckLastFail): add
+       property.
+
        * lily/main.cc (main_prog): print summary of failed files.
 
        * lily/axis-group-engraver.cc: move all spanner creation to
        process_music (). Now staffs can be adjusted with \override too.
+       (Jan, you are a brilliant programmer!)
        
        * lily/chord-tremolo-engraver.cc (try_music): fix spurious warning. 
 
index c85cc20c2dc3a45d347d27aff6e4be43f9f73fbd..03b9b96f450c1349b41e33b05ef1329956dc8c04 100644 (file)
 Unreleased:
 
 @itemize
+@end itemize
+
+Version 2.1.7
+
+@itemize @bullet
+
+@item Contexts may now be changed locally for an isolated music
+expression. For example,
+  
+@example
+  \new Voice \with @{
+     \consists "Pitch_squash_engraver"
+  @} @{
+    c'4
+  @}
+@end example
 
 @item The syntax for changing staffs has changed. The keyword
 @code{\change} should now be used, e.g.
@@ -18,24 +34,19 @@ Unreleased:
   \change Staff = up
 @end example 
 
-@item  Features of spanner contexts, like @code{Staff}, can now be changed easily:
+@item Features of spanner contexts, like @code{Staff}, can now be changed
+  using @code{\property}, eg.
 
 @example
-  \new Staff \with @{
-     StaffSymbol \set #'line-count = #4
-  @} @{
-    c'4
-  @}
+  \new Staff @{
+       \property Staff.StaffSymbol \set #'line-count = #4
+       c'4
+  @} 
 @end example
 
 @noindent
 puts a quarter note C on a staff with 4 lines.  
 
-@end itemize
-
-Version 2.1.7
-
-@itemize @bullet
 
 @item Multi measure rests are now truly centered between the
 clefs/barlines of the staff, their position is independent of symbols
index 39151e277689cd155491870f92dd1aa0515c634b..d8d9d3d14b51653b1b85e63747940fda05d64771 100644 (file)
@@ -35,6 +35,7 @@ together with the embedded Scheme interpreter.
 * Context properties::          
 * Context evaluation::          
 * Defining contexts::           
+* Changing contexts locally::   
 * Engravers and performers::    
 * Defining new contexts::       
 @end menu
@@ -285,6 +286,44 @@ It is not possible to collect multiple property assignments in a
 variable, and apply to one @code{\translator} definition by
 referencing that variable.
 
+@node Changing contexts locally
+@subsection Changing contexts locally
+
+
+Extending an existing context can also be done locally. A piece of
+music can be interpreted in a changed context by using the following syntax 
+
+@example
+  \with @{
+     @var{context modifications}
+  @}
+@end example
+
+These statements comes between @code{\new} or @code{\context} and the
+music to be interpreted. The @var{context modifications} property
+settings and @code{\remove}, @code{\consists} and @code{\consistsend}
+commands. The syntax is similar to the @code{\translator} block.
+
+The following example shows how a staff is created with bigger spaces:
+
+@lilypond[relative=1,fragment]
+<<
+  \new Staff { c4 es4 g2 }
+  \new Staff \with {
+        StaffSymbol \set #'staff-space = #(magstep 1.5)
+        fontSize = #1.5
+        \remove "Clef_engraver"
+  } {
+        c4 es4 g2
+  } >>
+@end lilypond
+
+@refbugs
+
+@code{\with} has no effect on contexts that already exist. Neither can
+it be used for @internalsref{Score} contexts.
+
+
 @node Engravers and performers
 @subsection  Engravers and performers
 
index dcd20b587f9af41918235d77360efac93098339f..51eae7e7f5d752f2eb3e8351c99d5dddf3506a28 100644 (file)
@@ -32,7 +32,6 @@ somewhat familiar with using LilyPond.
 * Ancient notation::            
 * Contemporary notation::       
 * Tuning output::               
-* Tuning spanning contexts::    
 * Global layout::               
 * Sound::                       
 @end menu
@@ -813,15 +812,12 @@ staff symbol.
 @cindex thickness of staff lines, setting 
 @cindex number of staff lines, setting 
 
-This object is created whenever a @internalsref{Staff} context is
-created.  To change its appearance, use the @code{\with} command,
-described in @ref{Tuning spanning contexts}.
-
 @seealso
 
+Internals: @internalsref{StaffSymbol},
 
-@internalsref{StaffSymbol}, @inputfileref{input/test,staff-lines.ly},
-@inputfileref{input/test,staff-size.ly}, @ref{Tuning spanning contexts}. 
+Examples: @inputfileref{input/test,staff-lines.ly},
+@inputfileref{input/test,staff-size.ly}
 
 @refbugs
 
@@ -1189,11 +1185,7 @@ The barlines at the start of each system are
 @internalsref{SystemStartBar}, @internalsref{SystemStartBrace}, and
 @internalsref{SystemStartBracket}.  Only one of these types is created
 in every context, and that type is determined by the property
-@code{systemStartDelimiter}.  They are spanner objects and therefore
-the objects, as well as @code{systemStartDelimiter} must be set from a
-@code{\translator} block (see @ref{Defining contexts}) or using
-@code{\with} (see @code{Tuning spanning contexts}).
-
+@code{systemStartDelimiter}.
 
 @node Polyphony
 @section Polyphony
@@ -3741,8 +3733,7 @@ chord.
 @cindex Non-guitar tablatures
 
 You can change the number of strings, by setting the number of lines
-in the @internalsref{TabStaff}. For more information, see @ref{Tuning
-spanning contexts}).
+in the @internalsref{TabStaff}. 
 
 You can change the tuning of the strings. A string tuning is given as
 a Scheme list with one integer number for each string, the number
@@ -3754,9 +3745,6 @@ g:
 
 @lilypond[fragment,verbatim]
   \context TabStaff <<
-
-    \applyoutput #(outputproperty-compatibility (make-type-checker 'staff-symbol-interface)
-                    'line-count 4)
     \property TabStaff.stringTunings =  #'(-5 -10 -15 -20)
     
     \notes {
@@ -4927,8 +4915,7 @@ historic style mensural G clef @tab
 Editio Vaticana style do clef @tab
 @code{vaticana_do1}, @code{vaticana_do2}, @code{vaticana_do3} @tab
 @lilypond[relative 0, notime]
-\context Staff
-\applyoutput #(outputproperty-compatibility (make-type-checker 'staff-symbol-interface) 'line-count 4)
+    \property Staff.StaffSymbol \set #'line-count  = #4
 \property Staff.TimeSignature \set #'transparent = ##t
 \clef "vaticana_do2" c
 @end lilypond
@@ -4938,8 +4925,7 @@ Editio Vaticana style do clef @tab
 Editio Vaticana style fa clef @tab
 @code{vaticana_fa1}, @code{vaticana_fa2} @tab
 @lilypond[relative 0, notime]
-\context Staff
-\applyoutput #(outputproperty-compatibility (make-type-checker 'staff-symbol-interface) 'line-count 4)
+    \property Staff.StaffSymbol \set #'line-count  = #4
 \property Staff.TimeSignature \set #'transparent = ##t
 \clef "vaticana_fa2" c
 @end lilypond
@@ -4949,8 +4935,7 @@ Editio Vaticana style fa clef @tab
 Editio Medicaea style do clef @tab
 @code{medicaea_do1}, @code{medicaea_do2}, @code{medicaea_do3} @tab
 @lilypond[relative 0, notime]
-\context Staff
-\applyoutput #(outputproperty-compatibility (make-type-checker 'staff-symbol-interface) 'line-count 4)
+    \property Staff.StaffSymbol \set #'line-count  = #4
 \property Staff.TimeSignature \set #'transparent = ##t
 \clef "medicaea_do2" c
 @end lilypond
@@ -4960,8 +4945,7 @@ Editio Medicaea style do clef @tab
 Editio Medicaea style fa clef @tab
 @code{medicaea_fa1}, @code{medicaea_fa2} @tab
 @lilypond[relative 0, notime]
-\context Staff
-\applyoutput #(outputproperty-compatibility (make-type-checker 'staff-symbol-interface) 'line-count 4)
+    \property Staff.StaffSymbol \set #'line-count  = #4
 \property Staff.TimeSignature \set #'transparent = ##t
 \clef "medicaea_fa2" c
 @end lilypond
@@ -4971,8 +4955,7 @@ Editio Medicaea style fa clef @tab
 historic style hufnagel do clef @tab
 @code{hufnagel_do1}, @code{hufnagel_do2}, @code{hufnagel_do3} @tab
 @lilypond[relative 0, notime]
-\context Staff
-\applyoutput #(outputproperty-compatibility (make-type-checker 'staff-symbol-interface) 'line-count 4)
+    \property Staff.StaffSymbol \set #'line-count  = #4
 \property Staff.TimeSignature \set #'transparent = ##t
 \clef "hufnagel_do2" c
 @end lilypond
@@ -4982,8 +4965,7 @@ historic style hufnagel do clef @tab
 historic style hufnagel fa clef @tab
 @code{hufnagel_fa1}, @code{hufnagel_fa2} @tab
 @lilypond[relative 0, notime]
-\context Staff
-\applyoutput #(outputproperty-compatibility (make-type-checker 'staff-symbol-interface) 'line-count 4)
+    \property Staff.StaffSymbol \set #'line-count  = #4
 \property Staff.TimeSignature \set #'transparent = ##t
 \clef "hufnagel_fa2" c
 @end lilypond
@@ -7434,6 +7416,10 @@ layout property name:
 
 @menu
 * Tuning objects::              
+* Constructing a tweak::        
+* Applyoutput::                 
+* Font selection::              
+* Text markup::                 
 @end menu
 
 
@@ -7609,40 +7595,6 @@ including the changed thickness, but excluding the new neutral
 direction.
 
 
-@node Tuning spanning contexts
-@section Tuning spanning contexts
-
-Certain objects, for example, the staff symbol, are constructed before
-any @code{\property} statements are executed.  Therefore, they must be
-tuned with a different mechanism. This mechanism is @code{\with}. The
-syntax is as follows
-
-@example
-  \with @{
-     @var{property-settings}
-  @}
-@end example
-
-These statements comes between @code{\new} or @code{\context} and the
-music to be interpreted. @var{property-settings} may be any type of
-@code{\property} command.  The following example shows how a staff is
-created with bigger spaces:
-
-@lilypond[relative=1,fragment]
-<<  \new Staff { c4 es4 g2 }
-  \new Staff \with {
-        StaffSymbol \set #'staff-space = #(magstep 1.5)
-        fontSize = #1.5
-  } {
-        c4 es4 g2
-  } >>
-@end lilypond
-
-@refbugs
-
-@code{\with} has no effect for already existing contexts. @code{\with}
-can not be used for @internalsref{Score} contexts.
-
 
 @menu
 * Constructing a tweak::        
diff --git a/VERSION b/VERSION
index 4f890a9c78df185e4381939ac99151661bedcae8..0076e7ac4c61bfb1cfd7357ddaf81d6cf4f4bc31 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=1
-PATCH_LEVEL=7
-MY_PATCH_LEVEL=hwn1
+PATCH_LEVEL=8
+MY_PATCH_LEVEL=
 
index 15d40829473015cfa311c97bfa29bebc45fa8b1b..faa151109df3901797a523393fe847c0ef5ea5bf 100644 (file)
@@ -14,9 +14,7 @@ upperStaff =  \context GregorianStaff = upperStaff <<
     \property Score.timing = ##f
 %   \property Score.forceAccidental = ##t %%%%%%%% FIXME: what happened to this property?
 
-    % this is broken until further notice -- see refman
-    % \property Staff.StaffSymbol \override #'line-count = #4
-    \context Staff \applyoutput #(outputproperty-compatibility (make-type-checker 'staff-symbol-interface) 'line-count 4)
+    \property Staff.StaffSymbol \override #'line-count = #4
 
     \notes \transpose c c {
        \property Staff.KeySignature \override #'style = #'vaticana
index d76c98fbee5cded4fdd96a22641bcdbfa032908c..19fc31b39f8c82f76237e7968e32b762afa14bb0 100644 (file)
@@ -19,9 +19,10 @@ lower = \notes\relative c {
     \new Staff <<
       \upper
     >>  
-    \new Staff \with { StaffSymbol \set #'line-count = #4 } <<
-      \clef bass
-      \lower
+    \new Staff  {
+       \property Staff.StaffSymbol \set #'line-count = #4 } <<
+        \clef bass
+        \lower
     >>  
   >>
   \paper { raggedright=##t}  
index 14ccc00ce95175a62d48f29f7b945c8b7acc80c0..56554bea7a3c6a7ff0583f84481e8a21ed9cad6d 100644 (file)
@@ -3,24 +3,13 @@
 
 \header { texidoc = "@cindex Staff Size
 
-For setting staff sizes there are two options: using
-@code{StaffContainer} and override/revert, or
-@code{\with}. Both methods are shown in this example."
+For setting staff sizes, both @code{staff-space} and @code{fontSize}
+must be set."
 
 }
 
 \score {
   \notes \relative c' <<
-      \new StaffContainer {
-         \property StaffContainer.StaffSymbol \set #'staff-space = #(magstep -2)
-         \property Staff.fontSize = #-2
-       
-         \dynamicUp\stemDown
-         
-                               %\key gis \major
-         c8 d  e[ f g a] b c \ff
-      }
-
       \new Staff \relative c'' {
          \dynamicDown c,,4 \ff c c c
       }
index c00c4af282dd42bac508d8adf3e568b1a60aab26..94a873bc9cf20104148f6779dbc8f572ea88b09a 100644 (file)
@@ -59,6 +59,10 @@ Axis_group_engraver::get_spanner () const
   return new Spanner (get_property ("VerticalAxisGroup"));
 }
 
+/*
+  TODO: should we junk minimumVerticalExtent/extraVerticalExtent ?  
+ */
+
 void
 Axis_group_engraver::finalize ()
 {
index c95c064a45bb7b6387b7cd265aec90f8765e4229..16b03abf2c9fe43e4e788d9e08f2cdfe855c34b5 100644 (file)
@@ -48,14 +48,26 @@ Bar_check_iterator::process (Moment m)
       
       if (where->main_part_)
        {
-         get_music ()->origin ()->warning (_f ("barcheck failed at: %s", 
-                                             where->to_string ()));
+         bool warn =true;
          if (to_boolean (sync))
            {
              tr = tr->where_defined (ly_symbol2scm("measurePosition"));
              Moment zero;
              tr->set_property ("measurePosition", zero.smobbed_copy ());
            }
+         else
+           {
+             SCM lf = tr->get_property ("barCheckLastFail");
+             if (unsmob_moment (lf)
+                 && *unsmob_moment (lf) == *where)
+               warn = false;
+             else
+               tr->set_property ("barCheckLastFail", mp);
+           }
+
+         if (warn)
+           get_music ()->origin ()->warning (_f ("barcheck failed at: %s", 
+                                             where->to_string ()));
        }
     }
 }    
index a6b5018b0c74e943b0a677d78ff6a88f83248cde..6398c0e04021b341af212c26a7dc63570ecc0b79 100644 (file)
@@ -155,7 +155,6 @@ Score_engraver::one_time_step ()
       Grob *g = announce_infos_[i].grob_;
       if (!dynamic_cast<Paper_column*> (g)) // ugh.
        {
-      
          String msg= "Grob "
            + g->name()
            + " was created too late!";
index c83baf9f9590bdc068b1f6badd96dca2e43b3cfb..14f5321d48fe0cfa380f8a14d7e1adccb481985e 100644 (file)
@@ -93,6 +93,11 @@ Translator_group::add_fresh_group_translator (Translator*t)
   trans_group_list_ = add_translator (trans_group_list_,t); 
   
   Translator_def * td = unsmob_translator_def (tg->definition_);
+
+  /*
+    this can not move before add_translator(), because \override
+    operations require that we are in the hierarchy.
+   */
   td->apply_default_property_operations (tg);
 
   t->initialize ();
index 780d434af3a55e9afdddf4a3d61e52c11f026106..3f2f7b85995bc812b694aab6463e83619cefdfa0 100644 (file)
@@ -108,6 +108,8 @@ wins. In case of draw, a normal accidental is typeset.
 
 (translator-property-description 'barAlways boolean? "If set to true a bar line is drawn after each note.
 ")
+(translator-property-description 'barCheckLastFail ly:moment? "Where in  the measurze did the last barcheck fail?") 
+
 (translator-property-description 'barCheckSynchronize boolean? "If
 true then reset measurePosition when finding a barcheck. Turn off when
 using barchecks in polyphonic music.")
index 18b691719b72388489aadf8abc539851299a5a82..5f659c8da0a49d154a1f1c259f3a00861c4db299 100644 (file)
@@ -34,16 +34,33 @@ footer_file = ''
 default_header = r"""
 """
 
+
+wiki_base = 'http://afavant.elte.hu/lywiki/'
+
+
 default_footer = r"""<hr>Please take me <a href=@INDEX@>back to the index</a>
 of @PACKAGE_NAME@
 """
 
-built = r"""<hr>
-<p><font size="-1">
-This page is for @PACKAGE_NAME@-@PACKAGE_VERSION@ (@BRANCH@). <br>
+built = r"""
+<p>
+<table align="center" width="100%%" cellspacing="2" BGCOLOR="#e8ffe8">
+ <tr>
+          <td align=left>
+
+<a href="%(wiki_base)s%(wiki_page)s">Read </a> comments on this page, or
+<a href="%(wiki_base)s%(wiki_page)s?action=edit">add</a> one.
+<p>
+<font size="-1">
+This page is for %(package_name)s-%(package_version)s (%(branch_str)s). <br>
 </font>
 <address><font size="-1">
-Report errors to &lt;<a href="mailto:@MAILADDRESS@">@MAILADDRESS@</a>&gt;.</font></address>"""
+Report errors to &lt;<a href="mailto:%(mail_address)s">%(mail_address)s</a>&gt;.</font></address>
+        </tr>
+        </table>
+
+
+"""
 
 
 def gulp_file (f):
@@ -186,6 +203,7 @@ def remove_self_ref (s):
 
 def do_file (f):
        s = gulp_file (f)
+       s = re.sub ('%', '%%', s)
 
        if changelog_file:
                changes = gulp_file (changelog_file)
@@ -241,28 +259,18 @@ def do_file (f):
        branch_str = 'stable-branch'
        if string.atoi ( versiontup[1]) %  2:
                branch_str = 'development-branch'
-               
-       s = re.sub ('@INDEX@', index, s)
-       s = re.sub ('@TOP@', top, s)
-       s = re.sub ('@PACKAGE_NAME@', package_name, s)
-       s = re.sub ('@PACKAGE_VERSION@', package_version, s)
-       s = re.sub ('@WEBMASTER@', webmaster, s)
-       s = re.sub ('@GCOS@', gcos, s)
-       s = re.sub ('@LOCALTIME@', localtime, s)
-       s = re.sub ('@MAILADDRESS@', mail_address, s)
-       s = re.sub ('@BRANCH@', branch_str, s)  
 
-       # ugh, python2.[12] re is broken.
-       #pat = re.compile ('.*?<!--\s*(@[^@]*@)\s*=\s*([^>]*)\s*-->', re.DOTALL)
-       pat = re.compile ('[.\n]*?<!--\s*(@[^@]*@)\s*=\s*([^>]*)\s*-->')
-       m = pat.search (s)
-       while m:
-               at_var = m.group (1)
-               at_val = m.group (2)
-               sys.stderr.write ('at: %s -> %s\n' % (at_var, at_val))
-               s = re.sub (at_var, at_val, s)
-               m = pat.search (s)
+       wiki_page = ('v%s.%s-' % (versiontup[0], versiontup[1]) +  f)
+       wiki_page = re.sub ('out-www/', '', wiki_page)
+       wiki_page = re.sub ('/', '-', wiki_page) 
+       wiki_page = re.sub ('.html', '', wiki_page)
 
+       subst = globals ()
+       subst.update (locals())
+       
+       
+       s = s % subst
+       
        # urg
        # maybe find first node?
        fallback_web_title = '-- --'