]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.56.mb1: Re: LilyPond 1.3.56
authorMats Bengtsson <mats.bengtsson@s3.kth.se>
Tue, 30 May 2000 22:16:21 +0000 (00:16 +0200)
committerMats Bengtsson <mats.bengtsson@s3.kth.se>
Tue, 30 May 2000 22:16:21 +0000 (00:16 +0200)
1.3.56.mb1
==========

* Updated FAQ with two useful GDB macros.

* Several fixes in the documentation.

---
Generated by (address unknown),
>From = lilypond-1.3.56, To = lilypond-1.3.56.mb1

usage

    cd lilypond-source-dir; patch -E -p1 < lilypond-1.3.56.mb1.diff

Patches do not contain automatically generated files
or (urg) empty directories,
i.e., you should rerun autoconf, configure

CHANGES
Documentation/faq.texi
Documentation/user/bugs.itexi
Documentation/user/invoking.itexi
Documentation/user/refman.itely
Documentation/user/tutorial.itely
VERSION
lily/clef-engraver.cc

diff --git a/CHANGES b/CHANGES
index 81ad5e8ddd88e08a5e2e0f9f1c84f27c25b6faf8..5e1da30ae963f0341b810e77d180fb8a57a962bc 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,16 @@
-1.3.55.jcn1
+--- ../lilypond-1.3.56/CHANGES Mon May 29 00:12:41 2000
+++ b/CHANGES   Wed May 31 00:06:33 2000
+@@ -1,3 +1,10 @@
+1.3.56.mb1
+==========
+
+* Updated FAQ with two useful GDB macros.
+
+* Several fixes in the documentation.
+
+ 1.3.55.hwn1
+ ===========
+ 1.3.55.jcn1
 ===========
 
 * Made (dutch) po-update
index e523c786d89f126fd29b91c124ce83c322ccbe3e..fb738a93dfb849dfc4dd28e56e8b94248fad8178 100644 (file)
@@ -407,7 +407,23 @@ No.  We have evaluated the standard GNU combination for compiling
 programs (autoconf, automake, libtool) and found to be inadequate for
 our needs.
 
-@subsubsection gdb crashes when I debug!
+@subsubsection How do I inspect @code{String}s and @code{SCM} values in GDB?
+
+Use the following command definitions, which can be put in 
+the file ~/.gdbinit.
+
+@example
+define printstr
+    print $arg0->strh_.data->data_byte_p_
+end
+
+define printscm
+    call gh_display($arg0)
+    call gh_newline()
+end
+@end example
+
+@subsubsection GDB crashes when I debug!
 
 Upgrade/downgrade to 4.17.
 
index 51513a24f774c0aa0920b391da70bbb92a7c6f4f..584f49ddf4964152094401fd6f7544b88c911c05 100644 (file)
@@ -2,8 +2,10 @@
 @section Bug reports
 
 There is an extensive list of todoes and bugs.  See the file
-@file{TODO} distributed with the sources.  If you have a problem you
-please try to find out
+@file{TODO} distributed with the sources.  If you have a problem,
+would you please try to find out
+
+@c ********* The TODO file is no more in the distr.  /MB
 
 @itemize @bullet
 @item If the bug has been fixed in a newer release.
index 747153935601f2a32c6676bb9673232d3b042a41..c0e8228338332fd3a0cafc8f2ee163f5de62d673 100644 (file)
@@ -50,6 +50,7 @@ code and named output.
 When invoked with a filename that has no extension, LilyPond will try
 adding `@file{.ly}' as an extension first.
 
+@c ****** Is the following on its way out?  /MB
 If you invoke LilyPond with a file `@file{foo.}@var{ext}' that doesn't
 have the `@file{.ly}' extension, then LilyPond will look for a file
 called `@file{init.}@var{ext}' and process this file.  The file
index f7e64d0e283accf0eec1d487188276f8c216b0b2..6b7ac8a458d1ccdd96d6c984fff2da4efa7744f5 100644 (file)
@@ -1,4 +1,9 @@
-
+@c TODO: 
+@c - Reinsert subsection commands that were lost in the
+@c   ancient conversion from YODL!  /MB
+@c - Restructure! Separate internal commands from user level commands. /MB
+@c - Add some words about Guile.  /MB
+@c - Fix indexing (keyindex) so it doesn't add line breaks  /MB
 
 @node Reference Manual, ,  , Top
 @menu
@@ -96,7 +101,7 @@ The syntax is
 
 @example
   \header @{ @var{key1} = @var{val1};
-                        @var{key2} = @var{val2}; @dots{} @}
+             @var{key2} = @var{val2}; @dots{} @}
 @end example
 
 A header describes the file's contents.  It can also appear in a
@@ -319,8 +324,8 @@ english.ly     c   d   e   f   g   a   bf  b   -s/-sharp   -f/-flat
 deutsch.ly     c   d   e   f   g   a   b   h   -is         -es
 norsk.ly       c   d   e   f   g   a   b   h   -iss/-is    -ess/-es
 svenska.ly     c   d   e   f   g   a   b   h   -iss        -ess
-italiano.ly    do  re  mi  fa  sol la  sid si  -d          -b
-catalan.ly     do  re  mi  fa  sol la  sid si  -d/-s       -b 
+italiano.ly    do  re  mi  fa  sol la  sib si  -d          -b
+catalan.ly     do  re  mi  fa  sol la  sib si  -d/-s       -b 
 @end example 
 
 Pitch names can be redefined using the
@@ -401,8 +406,8 @@ different modes have different rules for deciding what is a word.
     is that a word can end with `@code{@}}', which may be confusing if
     you thought the closing brace was going to terminate Lyrics
     mode.@footnote{LilyPond will issue a warning, though.}  Any
-    `@code{_}' characters which appear in an unquoted word are
-    converted to spaces.  This provides a mechanism for introducing
+    `@code{_}' character which appears in an unquoted word is
+    converted to a space.  This provides a mechanism for introducing
     spaces into words without using quotes.  Quoted words can also be
     used in Lyrics mode to specify words that cannot be written with
     the above rules.  Here are some examples.  Not all of these words
@@ -924,7 +929,7 @@ lasting two eighth notes.
 
 @cindex upstep
 
-`@code{|}' is a barcheck.  Whenever a barcheck is encountered during
+`@code{|}' is a bar check.  Whenever a bar check is encountered during
 interpretation, a warning message is issued if it doesn't fall at a
 measure boundary.  This can help you finding errors in the input. 
 The beginning of the measure will be relocated, so this can also
@@ -1833,7 +1838,7 @@ notes.
 @mudela[verbatim,fragment]
 \addlyrics
 \transpose c'' {
-  \property Voice.automaticMelismata = "1"
+  \property Voice.automaticMelismata = ##t
   c8 () cis d8. e16 f2
 }
 \context Lyrics \lyrics {
@@ -1999,7 +2004,7 @@ If you want inversions to be recognized, you must set the property
 
 @mudela[fragment,verbatim,center]
   <
-    \property Score.chordInversion = 1
+    \property Score.chordInversion = ##t
     \context ChordNameVoice \notes {
       <e'1 g' c''>
     }
index 9bd5e9e28e81424e44014ebc440d04238f9d01e0..136410e948d650116fe90b3833633806ee15a841 100644 (file)
@@ -38,7 +38,8 @@ full fledged, yet simple example. It is a convoluted version
 of the famous menuet in J. S. Bach's @emph{Klavierbuechlein}.
 
 @mudela[verbatim]
-% lines preceded by a percent are comments.
+% lines preceded by a percent are comments which
+% are ignored by Lilypond.
 \include "paper16.ly"
 \score {
     \notes                        
@@ -85,7 +86,9 @@ will analyse the input, line by line.
 Let's try to redo this
 @example
 
-        % lines preceded by a percent are comments.
+       % lines preceded by a percent are comments which
+       % are ignored by Lilypond.
+
  
 @end example 
 The percent sign, `@code{%}', introduces a line comment.  If you want to
@@ -178,8 +181,8 @@ typesetting conventions.
  
 @end example 
   This command tells LilyPond that the following piece of music must
-be played twice; @code{"volta"} volta brackets should be used for
-alternatives---if there were any.
+be played twice; @code{"volta"} means that volta brackets should be used
+for alternatives---if there were any.
 @example 
 
         @{
@@ -210,8 +213,8 @@ duration (You may enter it anyway, e.g. @code{a4 b4})
         d4 g, g |
  
 @end example 
- Three more notes.  The `@code{|}' character is a `barcheck'.  When
-processing the music, LilyPond will verify that barchecks are found at
+ Three more notes.  The `@code{|}' character is a `bar check'.  When
+processing the music, LilyPond will verify that bar checks are found at
 the start of a measure.  This can help you track down errors.
 
  So far, no notes were chromatically altered.  Here is the first one
@@ -233,8 +236,8 @@ In this case, a beam over 4 eighths is added.
 @end example 
   The next line shows how to make a slur:
 the beginning and ending note of the slur is marked with an opening and
-closing parenthesis respectively.  In the line shown above this is
-done for two slurs.  Slur markers (parentheses) are between
+closing parenthesis respectively.  In the line shown above, this is
+done for two slurs.  Slur markers (parentheses) are put between
 the notes.
 @example 
 
@@ -242,7 +245,7 @@ the notes.
  
 @end example 
 Automatic beaming can be overridden by inserting beam marks
-(brackets).  Brackets are put around notes you want beamed.
+(brackets).  Brackets are put around the notes you want beamed.
 @example 
 
         g2.  |
@@ -263,8 +266,8 @@ a repeat bar.
  
 @end example 
  This line shows that Lily will print an accidental if that is
-needed: the first C sharp will be printed with an accidental, the
-second one without.
+needed: the first C sharp of the bar will be printed with an accidental,
+the second one without.
 @example 
 
         a8-. b-. cis-. d-. e-. fis-.
@@ -272,7 +275,7 @@ second one without.
 @end example 
 You can enter articulation signs either in a verbose form using a
 shorthand.  Here we demonstrate the shorthand: it is formed by a dash
-and the the character for the articulation to use, e.g. `@code{-.}' for
+and the character for the articulation to use, e.g. `@code{-.}' for
 staccato as shown above.
 @example 
 
@@ -347,6 +350,7 @@ of this song.}.
 \include "paper16.ly"
 melody = \notes \relative c' @{
         \partial 8;
+       \key c \minor;
         g8 |
         c4 c8 d [es () d] c4 | f4 f8 g [es() d] c g |
         c4 c8 d [es () d] c4 | d4 es8 d c4.
@@ -370,13 +374,13 @@ accompaniment =\chords @{
 
           \addlyrics
             \context Staff = mel @{        
-              \property Staff.noAutoBeaming = "1"
-              \property Staff.automaticMelismata = "1"
+              \property Staff.noAutoBeaming = ##t
+              \property Staff.automaticMelismata = ##t
               \melody 
             @}
             \context Lyrics \text
         @}
-        \midi  @{ @}
+        \midi  @{ \tempo 4=72;@}
         \paper @{ linewidth = 10.0\cm; @}
 @} 
 @end example 
@@ -421,13 +425,13 @@ accompaniment =\chords {
 
           \addlyrics
             \context Staff = mel {
-              \property Staff.noAutoBeaming = "1"
-              \property Staff.automaticMelismata = "1"
+              \property Staff.noAutoBeaming = ##t
+              \property Staff.automaticMelismata = ##t
               \melody 
             }
             \context Lyrics \text
         }
-        \midi  { }
+        \midi  { \tempo 4=72;}
         \paper { linewidth = 10.0\cm; }
 }
 @end mudela
@@ -451,7 +455,7 @@ the @code{\header} block contains assignments.  An assignment starts
 with a string.  (which is unquoted, in this case). Then comes the
 equal sign `@code{=}'.  After the equal sign comes the expression you
 want to store.  In this case, you want to put in strings.  The
-information has to be quoted here, because it contains spaces. The
+information has to be quoted here, because it contains spaces. Each
 assignment is finished with a semicolon.
 @example 
 
@@ -475,7 +479,7 @@ construct the music within the score block.
 
 The piece starts with an anacrusis of one eighth.
 @example
-       \key c \minor
+       \key c \minor;
 @end example
 The key is C minor: we have three flats.
 
@@ -587,18 +591,18 @@ Normally, the notes that you enter are transformed into note heads.
 The note heads alone make no sense, they need surrounding information:
 a key signature, a clef, staff lines, etc.  They need @emph{context}.  In
 LilyPond, these symbols are created by objects called `interpretation
-context'.  Interpretation contexts only exist during a run of
+contexts'.  Interpretation contexts only exist during a run of
 LilyPond.  Interpretation contexts that are for printing music (as
-opposed to playing music) are called `notation context'.
+opposed to playing music) are called `notation contexts'.
 
-By default, LilyPond will create a Staff contexts for you.  If you
-would remove the @code{%} sign in the previous line, you can see that
+By default, LilyPond will create a Staff context for you.  If you
+removed the @code{%} sign in the previous line, you would see that
 mechanism in action.
 
-We don't want default contexts here, because we want names, not note
-heads.  An interpretation context can also created upon explicit
+We don't want default contexts here, because we want chord names, not
+note heads.  An interpretation context can also created upon explicit
 request. The keyword for such a request is @code{\context}.  It takes
-two arguments.  The first is the name of a interpretation context.
+two arguments.  The first is the name of an interpretation context.
 The name is a string, it can be quoted with double quotes).  The
 second argument is the music that should be interpreted in this
 context.  For the previous line, we could have written @code{\context
@@ -621,14 +625,14 @@ silly.)
  
 @end example 
 This is the argument of @code{\addlyrics}.  We instantiate a
-@code{Staff} context explicitly: should you chose to remove comment
+@code{Staff} context explicitly: should you chose to remove the comment
 before the ``note heads'' version of the accompaniment, the
 accompaniment will be on a nameless staff.  The melody has to be on a
 different staff as the accompaniment.  This is accomplished by giving
 the melody staff a different name.
 @example 
 
-        \property Staff.noAutoBeaming = "1"
+        \property Staff.noAutoBeaming = ##t
  
 @end example 
 An interpretation context has variables that tune its behaviour.  One
@@ -637,7 +641,7 @@ true) LilyPond will not try to put automatic beaming on the current
 staff.
 @example 
 
-        \property Staff.automaticMelismata = "1"
+        \property Staff.automaticMelismata = ##t
  
 @end example 
 Similarly, we  don't want to print a  syllable when there is
@@ -670,14 +674,16 @@ Lyrics.
 This ends @code{\simultaneous}.
 @example 
 
-        \midi  @{ @}
+        \midi  @{ \tempo 4=72;@}
  
 @end example 
 This makes the music go to a MIDI file.  MIDI is great for
 checking music you enter.  You listen to the MIDI file: if you hear
 something unexpected, it's probably a typing error.  @code{\midi} is an
 `output definition', a declaration that specifies how to output music
-analogous to @code{\paper @{ @}}.
+analogous to @code{\paper @{ @}}. You can specify the tempo using the
+@code{\tempo} command, in this case the tempo of quarter notes is set
+to 72 beats per minute.
 @example 
 
         \paper @{ linewidth = 10.0\cm; @}
@@ -695,12 +701,13 @@ End the score block.
 @node Piano music, , , Tutorial
 @section Piano music
 
-Our third subject is a piece piano music.  The fragment in the input
+Our third subject is a piece of piano music.  The fragment in the input
 file is a piano reduction of the G major Sinfonia by Giovanni Battista
 Sammartini.  It was composed around 1740. 
 
 @mudela[verbatim]
 
+\version "1.3.56";
 \include "paper16.ly";
 
 viola = \notes \relative c' \context Voice = viola {
@@ -736,7 +743,7 @@ hoomPahHoomPah = { [\hoomPah \hoomPah] }
 
 bassvoices = \notes \relative c' {
         c4 g8. b,16
-        \hoomPahHoomPah \hoomPahHoomPah \hoomPahHoomPah \hoomPahHoomPah
+        \repeat unfold 4 {\hoomPahHoomPah}
         \stemdown [c8 c'8] r4
         <g d'> r4
         < {\stemup r2 <e4 c'> <c8 g'> }
@@ -746,7 +753,7 @@ bassvoices = \notes \relative c' {
 \score {
         \context PianoStaff \notes <
                 \context Staff = top < \time 2/2;
-                        \context Voice = viola \viola
+                        \viola
                         \oboes
                 >
                 \context Staff = bottom < \time 2/2; \clef bass;
@@ -764,15 +771,21 @@ If it looks like incomprehensible gibberish to you@dots{} Then you are
 right.  The author has doctored this example to have as many quirks in
 one system as possible.
 @example 
+\version "1.3.56";
+@end example 
+Lilypond and the Mudela language is still under development, therefore
+it is useful to indicate the Lilypond version of the file. Lilypond 
+will check the version number and warn you when the syntax has
+changed. Also, the @code{convert-mudela} program will be able to 
+update most of the syntax changes automatically.
+@example 
 viola = \notes \relative c'  \context Voice = viola @{ 
 @end example 
 In this example, you can see multiple parts on a staff.  Each part is
 associated with one notation context.  This notation context handles
 stems and dynamics (among others).  The name of this context is
 @code{Voice}.  For each part we have to make sure that there is
-precisely one Voice context@footnote{If @code{\context} would not
-have been specified explicitly, three @code{Voice} contexts would be
-created: one for each note  in the first chord.}.
+precisely one Voice context.
 @example 
 <c4-\f g' c> 
 @end example 
@@ -861,7 +874,7 @@ it from the other context.  Stems go down in this voice.
 When a grace section is processed, a @code{Grace} context is
 created. This context acts like a miniature score of its own.  It has
 its own time bookkeeping, and you can make notes, beams, slurs
-etc. Here fiddle with a property and make a beam.  The argument of
+etc. Here we fiddle with a property and make a beam.  The argument of
 @code{\grace} is sequential music.
 @example 
 \property Grace.verticalDirection = \down
@@ -924,11 +937,11 @@ hoomPahHoomPah = @{ [\hoomPah \hoomPah] @}
 Put two of these fragments in sequence, and beam them.@example 
 bassvoices = \notes \relative c' @{
 c4 g8. b,16
-\hoomPahHoomPah \hoomPahHoomPah \hoomPahHoomPah
-\hoomPahHoomPah 
+\repeat unfold 4 {\hoomPahHoomPah} 
 @end example 
 Entering the bass part is easy: the hoomPahHoomPah variable is
-referenced four times.
+repeated four times; @code{unfold} means that all four repetitions
+should be written out.
 @example 
 \context Voice = reallyLow  @{\stemdown g2 ~ | g4 c8 @} > 
 @end example 
@@ -946,7 +959,7 @@ The bottom staff must have a different clef.
 indent = 0.0; 
 @end example 
 To make some more room on the line, the first (in this case the only)
-line is not indented.  The line still looks is very cramped, but that is due
+line is not indented.  The line still looks very cramped, but that is due
 to the format of this tutorial.
 
 This example shows a lot of features, but the organisation isn't
diff --git a/VERSION b/VERSION
index 9db9d10cf6fd6edab67afb8556c35e9cbf4b1d43..79db5745d57982f490bf8c4032d2421edc14f1ae 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=56
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=mb1
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index e333906625a61c4a493466ab03dfeef0be0fb60f..7aa6e32f0b684a194a25b7a60a3502fe6f01469f 100644 (file)
@@ -50,7 +50,8 @@ public:
    
   Clef_engraver();
 
-  SCM basic_properties_;
+  bool  first_b_;
+  
   Protected_scm current_settings_;
 };
 
@@ -58,8 +59,8 @@ public:
 Clef_engraver::Clef_engraver()
 {
   current_settings_ = SCM_EOL;
-  basic_properties_ = SCM_EOL;
-  
+
+  first_b_ = true;
   clef_glyph_ = SCM_EOL;
   clef_p_ = 0;
   clef_req_l_ = 0;
@@ -108,7 +109,8 @@ Clef_engraver::set_type (String s)
 
   c0_position_i_ -= (int) octave_dir_ * 7;
 
-  current_settings_ = gh_cons (gh_cons (ly_symbol2scm ("glyph"), clef_glyph_), basic_properties_);
+  SCM basic = get_property ("basicClefItemProperties");
+  current_settings_ = gh_cons (gh_cons (ly_symbol2scm ("glyph"), clef_glyph_), basic);
   current_settings_ =
     gh_cons (gh_cons (ly_symbol2scm ("c0-position"),
                      gh_int2scm (c0_position_i_)),
@@ -117,7 +119,6 @@ Clef_engraver::set_type (String s)
   return true;
 }
 
-
 /** 
   Generate a clef at the start of a measure. (when you see a Bar,
   ie. a breakpoint) 
@@ -129,14 +130,11 @@ Clef_engraver::acknowledge_element (Score_element_info info)
       && gh_string_p (clef_glyph_))
     create_clef();
 
-  /* ugh; should make Clef_referenced baseclass */
   Item * it_l =dynamic_cast <Item *> (info.elem_l_);
   if (it_l)
     {
       if (dynamic_cast<Note_head*>(it_l)
-         || dynamic_cast<Local_key_item*> (it_l)
-         )
-         
+         || dynamic_cast<Local_key_item*> (it_l))
        {
          Staff_symbol_referencer_interface si (it_l);
          si.set_position (int (si.position_f ()) + c0_position_i_);
@@ -151,14 +149,10 @@ Clef_engraver::acknowledge_element (Score_element_info info)
 void
 Clef_engraver::do_creation_processing()
 {
-  basic_properties_ = get_property ("basicClefItemProperties");
-  
   SCM def = get_property ("defaultClef");
   if (gh_string_p (def))
     {
       set_type (ly_scm2string (def));
-      create_clef ();
-      clef_p_->set_elt_property ("non-default", SCM_BOOL_T);
     }
 }
 
@@ -214,7 +208,7 @@ Clef_engraver::create_clef()
 void
 Clef_engraver::do_process_music()
 {
-  if (clef_req_l_)
+  if (clef_req_l_ || first_b_)
     {
       create_clef();
       clef_p_->set_elt_property ("non-default", SCM_BOOL_T);
@@ -248,6 +242,8 @@ Clef_engraver::do_pre_move_processing()
 
       octavate_p_ = 0;
     }
+
+  first_b_ = 0;
 }
 
 void