]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.0.15
authorfred <fred>
Tue, 26 Mar 2002 21:27:25 +0000 (21:27 +0000)
committerfred <fred>
Tue, 26 Mar 2002 21:27:25 +0000 (21:27 +0000)
212 files changed:
Documentation/tex/refman.yo
Documentation/tex/tutorial.yo
TODO
buildscripts/lilypond-profile.sh [new file with mode: 0644]
configure.in
flower/include/cursor.hh
flower/include/cursor.icc
flower/include/cursor.tcc
flower/include/pcursor.hh
flower/include/pcursor.tcc
flower/include/rational.hh
flower/rational.cc
init/GNUmakefile
init/book-fragment.ly
init/book-init.ly
init/center-fragment.ly
init/center.ly
init/engraver.ly
init/fragment.ly
init/init.fly
init/init.ly
init/paper16.ly
init/paper20.ly
input/example-3.ly
input/keys.ly
input/kortjakje.ly
input/part.ly
input/pedal.ly
input/praeludium-fuga-E.ly
input/rhythm.ly
input/scales.ly
input/scripts.ly
input/test/abbrev.ly
input/test/bar-scripts.ly
input/test/beam-chord.ly
input/test/beam-pos.ly
input/test/beams.ly
input/test/broken.ly
input/test/clefs.ly
input/test/collisions.ly
input/test/defaultbars.ly
input/test/denneboom.ly
input/test/dotted-slur.ly
input/test/find-quarts.ly
input/test/font-body.ly
input/test/font.ly
input/test/font16.ly
input/test/gourlay.ly
input/test/grace.ly
input/test/hara-kiri.ly
input/test/keys.ly
input/test/knee.ly
input/test/mark.ly
input/test/multi-rest.ly
input/test/ossia.ly
input/test/score-bar-scripts.ly
input/test/sleur.ly
input/test/slur-bug.ly
input/test/slur-damping.ly
input/test/slur-swap.ly
input/test/slurs.ly
input/test/spacing.ly
input/test/stem.ly
input/test/test-lyrics.ly
input/test/tie-bug.ly
input/test/tie.ly
input/test/title.ly
input/test/transposition.ly
input/test/vertical-align.ly
input/tril.ly
input/twinkle-pop.ly
input/twinkle.ly
lib/duration.cc
lib/include/duration.hh
lily/auto-plet-engraver.cc [new file with mode: 0644]
lily/change-iterator.cc
lily/chord-iterator.cc
lily/command-request.cc
lily/compressed-music-iterator.cc [new file with mode: 0644]
lily/compressed-music.cc [new file with mode: 0644]
lily/include/auto-plet-engraver.hh [new file with mode: 0644]
lily/include/change-iterator.hh
lily/include/chord-iterator.hh
lily/include/clef-engraver.hh
lily/include/col-info.hh
lily/include/colhpos.hh
lily/include/command-request.hh
lily/include/compressed-music-iterator.hh [new file with mode: 0644]
lily/include/compressed-music.hh [new file with mode: 0644]
lily/include/dynamic-engraver.hh
lily/include/file-results.hh
lily/include/grouping.hh
lily/include/header.hh
lily/include/identifier.hh
lily/include/lily-proto.hh
lily/include/lookup.hh
lily/include/molecule.hh
lily/include/music-iterator.hh
lily/include/music-list.hh
lily/include/music-output.hh
lily/include/music-wrapper-iterator.hh
lily/include/music-wrapper.hh
lily/include/music.hh
lily/include/musical-request.hh
lily/include/my-lily-lexer.hh
lily/include/my-lily-parser.hh
lily/include/p-col.hh
lily/include/property-iterator.hh
lily/include/ps-lookup.hh
lily/include/request-iterator.hh
lily/include/request.hh
lily/include/score-column.hh
lily/include/score-element-info.hh
lily/include/score.hh
lily/include/stem.hh
lily/include/tex-lookup.hh
lily/include/text-item.hh
lily/include/time-description.hh
lily/include/voice-iterator.hh
lily/music-iterator.cc
lily/music-list.cc
lily/music-wrapper-iterator.cc
lily/music-wrapper.cc
lily/music.cc
lily/musical-request.cc
lily/my-lily-lexer.cc
lily/my-lily-parser.cc
lily/p-score.cc
lily/parser.yy
lily/plet-engraver.cc
lily/property-iterator.cc
lily/ps-lookup.cc
lily/request-iterator.cc
lily/request.cc
lily/rest-collision.cc
lily/score.cc
lily/scores.cc
lily/tex-lookup.cc
lily/voice-iterator.cc
make/lilypond.spec.in
make/substitute.make
mf/GNUmakefile
mutopia/Coriolan/bassi-part.ly
mutopia/Coriolan/clarinetti-part.ly
mutopia/Coriolan/clarinetti.ly
mutopia/Coriolan/clarinetto-1.ly
mutopia/Coriolan/clarinetto-2.ly
mutopia/Coriolan/contrabasso-part.ly
mutopia/Coriolan/contrabasso.ly
mutopia/Coriolan/coriolan.ly
mutopia/Coriolan/corni-part.ly
mutopia/Coriolan/corni.ly
mutopia/Coriolan/corno-1.ly
mutopia/Coriolan/corno-2.ly
mutopia/Coriolan/fagotti-part.ly
mutopia/Coriolan/fagotti.ly
mutopia/Coriolan/fagotto-1.ly
mutopia/Coriolan/fagotto-2.ly
mutopia/Coriolan/flauti-part.ly
mutopia/Coriolan/flauti.ly
mutopia/Coriolan/flauto-1.ly
mutopia/Coriolan/flauto-2.ly
mutopia/Coriolan/global.ly
mutopia/Coriolan/oboe-1.ly
mutopia/Coriolan/oboe-2.ly
mutopia/Coriolan/oboi-part.ly
mutopia/Coriolan/oboi.ly
mutopia/Coriolan/timpani.ly
mutopia/Coriolan/trombe-part.ly
mutopia/Coriolan/trombe.ly
mutopia/Coriolan/trombo-1.ly
mutopia/Coriolan/trombo-2.ly
mutopia/Coriolan/viola-1.ly
mutopia/Coriolan/viola-2.ly
mutopia/Coriolan/viola-part.ly
mutopia/Coriolan/violino-1-part.ly
mutopia/Coriolan/violino-1.ly
mutopia/Coriolan/violino-2-part.ly
mutopia/Coriolan/violino-2.ly
mutopia/Coriolan/violoncello-part.ly
mutopia/Coriolan/violoncello.ly
mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Allemande.ly
mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Sinfonia.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-3.lym4
mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly
mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly
mutopia/J.S.Bach/wtk1-fugue1.ly
mutopia/J.S.Bach/wtk1-fugue2.ly
mutopia/J.S.Bach/wtk1-prelude1.ly
mutopia/W.A.Mozart/cadenza.ly
mutopia/W.A.Mozart/horn-concerto-3.ly
mutopia/gallina.ly
mutopia/los-toros-oboe.ly
mutopia/standchen-16.ly
mutopia/standchen-20.ly
scripts/convert-mudela.py
tex/GNUmakefile

index 7bd5053e33b2709f79355fdf88d0c142a3dd9058..96983f7f3565fa4ee92b8b51ba5d2e9aa813b72a 100644 (file)
@@ -289,10 +289,10 @@ code(\notes).  In Note mode, words can only contain alphabetic
 characters.  If code(word) is encountered, LilyPond first checks for a
 notename of code(word).  If no notename is found, then code(word) is
 treated as a string.  If you mistype a notename, the parser will most
-likely complain that you should be in code(\lyric) mode to do lyrics. 
+likely complain that you should be in code(\lyrics) mode to do lyrics. 
 
 dit(Lyric mode) Lyrics mode is introduced by the keyword
-code(\lyric).  This mode is has rules that make it easy to include
+code(\lyrics).  This mode is has rules that make it easy to include
 punctuation and diacritical marks in words.  A word in Lyrics mode
 begins with: an alphabetic character, code(_),
 code(?), code(!), code(:), code('), 
@@ -513,7 +513,7 @@ mudela()(
           c''-\trill
           c''-\prall c''-\mordent c''-\prallprall  c''-\prallmordent
           c''-\upprall c''-\downprall }
-  \type Lyrics \lyric{  
+  \type Lyrics \lyrics{  
         accent      marcato      staccatissimo fermata stopped
            staccato tenuto upbow downbow lheel rheel ltoe rtoe  turn
            open  flageolet reverseturn 
@@ -676,7 +676,7 @@ See Section ref(modes) for a description of what is interpreted as a lyric.
 
 In order to instruct LilyPond to write lyrics underneath the
 staff, you must enter the lyrics context with code(\type Lyrics).  
-Lyrics should be entered in lyrics mode which is entered with code(\lyric).
+Lyrics should be entered in lyrics mode which is entered with code(\lyrics).
 
 Spaces can be introduced into a lyric either by using quotes (code("))
 or by using an underscore without quotes: code(He_could4 not4).  All
@@ -684,7 +684,7 @@ unquoted underscores are converted to spaces.  Here is a full example:
 mudela(verbatim)(\score{
   <  \notes \transpose c'' {c d e c | c d e c | e f g'2 | 
                               e'4 f g'2 \bar "|."; }
-     \type Lyrics \lyric { 
+     \type Lyrics \lyrics { 
               DOEXPAND(Fr\)`e-4 re Ja- que DOEXPAND(Fr\)`e- re Ja- que
               Dor- mez vous?2 Dor-4 mez vous?2  }
   >
@@ -939,7 +939,7 @@ dit(code(\keysignature) var(pitchseq);)
 Specify an arbitrary key signature.  The pitches from var(pitch) will
 be printed in the key signature in the order that they appear on the list.
 
-dit(code(\lyric) var(lyriclist)) Parse var(lyriclist) in lyrics mode.
+dit(code(\lyrics) var(lyriclist)) Parse var(lyriclist) in lyrics mode.
 
 dit(code(\maininput)) Internal command.  This command is used for creating init
 files like file(init.fly) that read the user file into the middle of another
index b213777cb90d74f6434d20dc9c2ca7c66ee54d45..02bdaaf9a340b4405bbb9fc30cb9dc88af1c32d9 100644 (file)
@@ -1297,12 +1297,12 @@ Lyrics consist of syllables, which are strings together with
 durations.  Previously we only entered note names, so for entering
 lyrics we have to instruct LilyPond that what we enter are not note
 names but words---or rather: strings.  This instruction is the keyword
-code(\lyric).  After entering this keyword you can enter a musical
+code(\lyrics).  After entering this keyword you can enter a musical
 construct---sequential music, simultaneous music, code(\type)
 entries, etc.--- but with syllables in stead of pitches.  For example:
-verb( \lyric { 'got8 me on my knees4, Le-8 lie! })
+verb( \lyrics { 'got8 me on my knees4, Le-8 lie! })
 
-The effect of code(\lyric) can be compared with the effect of the
+The effect of code(\lyrics) can be compared with the effect of the
 doublequote character, code("), for it also changes the lexical
 meaning of spaces and characters.  This mode is another example of a
 handy input feature of the language.
@@ -1316,14 +1316,14 @@ by a context called code(Lyrics).  You can select this context with
 the code(\type) keyword.  Here is a simple example:
 
 mudela(fragment,verbatim)(
-       \type Lyrics \lyric { 'got8 me on my knees,4 Le-8 lie! })
+       \type Lyrics \lyrics { 'got8 me on my knees,4 Le-8 lie! })
 
 The result is technically more or less correct, but without a melody it
 just doesn't work, so let's add a blob of cream:
 mudela(fragment,verbatim)(
   <
     \type Staff  { c''8. c''16 bes'8. a'16 g'4 f'8 g'4. }
-    \type Lyrics \lyric { 'got8. me16 on8. my16 knees,4 Le-8 lie!4. }
+    \type Lyrics \lyrics { 'got8. me16 on8. my16 knees,4 Le-8 lie!4. }
   >
 )
 
@@ -1340,13 +1340,13 @@ underscore instead of a space.  All these tricks are demonstrated in
 the following example:
 
 COMMENT( urg
-\type Lyrics \lyric { 'got_m\textbf{e}4 on8. m$\cal_Y$16 knees,4 Le-8 lie!4.}
-\type Lyrics \lyric { 'got_m{\bf e}4 on8. m$\cal_Y$16 knees,4 Le-8 lie!4.}
+\type Lyrics \lyrics { 'got_m\textbf{e}4 on8. m$\cal_Y$16 knees,4 Le-8 lie!4.}
+\type Lyrics \lyrics { 'got_m{\bf e}4 on8. m$\cal_Y$16 knees,4 Le-8 lie!4.}
 )
 
 mudela(fragment,verbatim)(<
   \type Staff  { c''8. c''16 bes'8. a'16 g'4 f'8 g'4. }
-  \type Lyrics \lyric { 'got_me4 on8. m$\cal_Y$16 "3s,"4 Le-8 lie!4.}
+  \type Lyrics \lyrics { 'got_me4 on8. m$\cal_Y$16 "3s,"4 Le-8 lie!4.}
 >
 )
 
@@ -1396,7 +1396,7 @@ code(\paper) definition is copied from a default definition
 The paper part also contains
 the definition of the contexts.
 
-The keyword code(\notes) is analogous to the code(\lyric) keyword.  It
+The keyword code(\notes) is analogous to the code(\lyrics) keyword.  It
 will switch the tokenizer into a mode that interprets plain words as
 note names.  If it can't recognize the words as a note name, it will
 assume that they are strings.  That is the reason why you can write
diff --git a/TODO b/TODO
index 275774c4633a9509f402d67056d89198458dd281..8adbc8d1da97b73e6ec6e033e4650cb650f24766 100644 (file)
--- a/TODO
+++ b/TODO
@@ -9,23 +9,17 @@ grep for TODO and ugh/ugr/urg
 
 
 BUGS:
+       
+
+       * formatting of input stuff. 
 
-       +
-       >      \notes{ a \< b \cr }
-       > 
-       > work but
-       >    
-       >      \notes{ a \< b \! }
-       > 
-       > give a parse error?  
+       * use real RTTI iso access_Stuff.
 
+       * \notes{ a \< b \cr } vs \notes{ a \< b \! }
 
        * if possible, it might be nice for a warning to appear if someone does
-       > \translator with no name and without assigning it to an
-identifier.  possible, it might be nice for a warning to appear if
-someone does
-       > \translator with no name and without assigning it to an
-identifier.
+       \translator with no name and without assigning it to an
+       identifier.  
 
        * space after bars?
 
@@ -33,21 +27,18 @@ identifier.
   
        * I see that  \prallprall and \prallmordent are identical. I think this is a 
        mistake, that \prallprall should not have the vertical line.
-       This can be fixex by removing  the line
-       draw_mordent(twidth-0.5toverlap);
+       This can be fixed by removing  the line
+       draw_mordent(twidth-0.5toverlap);
        from the definition of \prallprall in mf/feta-slag.mf (see below)
 
        * fix singleStaffBracket
   
        * repeat bars: need distance after ":|" and before "|:"
 
-       - The time signature warnings still remain, will be fixed later.
-
-       * fix \n after proccing
+       * The time signature warnings still remain, will be fixed later.
 
- Summary of minor spelling irregularities:
->   capitalization/use of underscores in property names
->   \lyric vs \notes  \lyric vs \type Lyrics  (\lyric should have an -s)
+       Summary of minor spelling irregularities:
+       -  capitalization/use of underscores in property names
 
        * fix Score.skipBars
 
@@ -57,30 +48,22 @@ identifier.
 
        * fix marks/barnumbers/marginal notes
 
-****
-
- > lbheel = \script { "bheel" 0 0 -1  0 0 }
-> rbheel = \script { "bheel" 0 0 1 0 0 }
-> lbtoe = \script { "btoe" 0 0 -1 0 0 }
-> rbtoe = \script { "btoe" 0 0 1 0 0 }
-> lfheel = \script { "fheel" 0 0 -1  0 0 }
-> rfheel = \script { "fheel" 0 0 1 0 0 }
-> lftoe = \script { "ftoe" 0 0 -1 0 0 }
-> rftoe = \script { "ftoe" 0 0 1 0 0 }
-> 
-> and also
-> 
-> portato= \script { "portato" 0 -1 0 1 0 }
+       * broken scripts:
+       lbheel = \script { "bheel" 0 0 -1  0 0 }
+       rbheel = \script { "bheel" 0 0 1 0 0 }
+       lbtoe = \script { "btoe" 0 0 -1 0 0 }
+       rbtoe = \script { "btoe" 0 0 1 0 0 }
+       lfheel = \script { "fheel" 0 0 -1  0 0 }
+       rfheel = \script { "fheel" 0 0 1 0 0 }
+       lftoe = \script { "ftoe" 0 0 -1 0 0 }
+       rftoe = \script { "ftoe" 0 0 1 0 0 }
+       
+       and also
+       
+       portato= \script { "portato" 0 -1 0 1 0 }
 
        * MIDI spelling.
 
-       * foo = 1
-
-        \score{
-          \notes { a }
-          \paper{ foo = \translator{ \StaffContext}; }
-        }
-
        * Align_element::padding  ?
 
        * uniformise property names.
@@ -89,8 +72,6 @@ identifier.
 
        * typo checks on property names?
 
-       * egcs-1.1 support
-
        * make engraver hacking robust.
 
        * use streambufs and iostream
@@ -102,7 +83,7 @@ identifier.
 
        * zip target for binary windows dist (JBR)
 
-       * text continuationss
+       * text continuations
 
        * revise documentation
 
@@ -111,14 +92,6 @@ identifier.
        * junking \skip req in lyrics
 
        * Language:
-       - general plet mechanism.
-
-               \plet 2/3 { c8 c8 c8 }
-
-       ie.
-
-               Music: PLET int '/' int Music
-
        - \type -> \context ?
        - \translator -> ?
        - fix \partial 
diff --git a/buildscripts/lilypond-profile.sh b/buildscripts/lilypond-profile.sh
new file mode 100644 (file)
index 0000000..2cbd3e1
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+
+# set environment for LilyPond.  To be installed in /etc/profile.d/
+
+LILYINCLUDE="@datadir@/ly"
+MFINPUTS="@datadir@/mf:"${MFINPUTS:=":"}
+TEXINPUTS="@datadir@/tex:"${TEXINPUTS:=":"}
+
+# todo: GS stuff
+
+export  LILYINCLUDE MFINPUTS TEXINPUTS
+
+# echo  $LILYINCLUDE $MFINPUTS $TEXINPUTS
+
+
index 275a9cae64aaf1dfcdbc35001dee344e9e38879c..0774dcc8244cb6a7b02601e3e52139ae16a5cf0e 100644 (file)
@@ -34,13 +34,13 @@ AC_STEPMAKE_LIB
 AC_STEPMAKE_LOCALE
 AC_STEPMAKE_GETTEXT
 AC_STEPMAKE_MSGFMT
-AC_STEPMAKE_TEXMF
+AC_STEPMAKE_TEXMF
 AC_STEPMAKE_YODL
 
 
 dnl should check out -print
 dnl huh?
-AC_CHECK_SEARCH_RESULT($FIND, find, Please use --enable-tex-dir)
+dnl AC_CHECK_SEARCH_RESULT($FIND, find, Please use --enable-tex-dir)
 
 AC_FUNC_MEMCMP
 AC_FUNC_VPRINTF
index 7aea72d3347fabffb3d36b5b6c9f82d0a6b86ac7..a7e5a1836d911cc9bb86722384078b49ee7cd9dc 100644 (file)
@@ -21,10 +21,6 @@ public:
   /** create cursor, set at top. The const part isn't true, actually, #list#
     surely isn't const, but I get tired of the warning messages.  */
   Cursor (const List<T>& list, Link<T>* pointer = 0);
-  /**
-    Create an invalid cursor (pointing to nothing, associated with   no list.)
-    */
-  Cursor();
   Cursor (const Cursor<T>& cursor);
 
   T& thing();
@@ -94,12 +90,14 @@ public:
   void del();
     
   /// access the list this came from
-  List<T>& list() const ;
+  List<T>* list_l() const ;
   Link<T>* pointer();
   static   int compare (Cursor<T> a,Cursor<T>b) { return a-b; }
+
 private:
-  List<T>& list_;
+  
   Link<T>* pointer_;
+  List<T>* list_l_;
 };
 
 
index 416faa52e8494568b06f4ce267b629ae6493017e..ee1f23f2bb044272ae189eda8a21db9e1d070d0b 100644 (file)
@@ -4,6 +4,7 @@
   source file of the Flower Library
 
   (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 
 
 #include <assert.h>
 
-// untested
+/**
+   Initialisation of Cursor.. Set pointer and list fields.  
+ */
 template<class T>
 inline
-Cursor<T>::Cursor()
- :   list_(*(List<T> *)0)      // ugh
-{
-  pointer_ = 0;
-}
-
-
-template<class T>
-inline
-Cursor<T>::Cursor (const List<T>& list, Link<T>* pointer) : 
-  list_((List<T>&) list)
+Cursor<T>::Cursor (const List<T> & list, Link<T>* p )
 {
+  list_l_ =  (List<T> *) &list;        // damn const
   if (list.size())
-      pointer_ = pointer ? pointer : list.top_;
+      pointer_ = p ? p : list.top_;
   else
-      pointer_ = pointer;
+      pointer_ = p;
 }
 
+
+
 template<class T>
 inline
-Cursor<T>::Cursor (const Cursor<T>& cursor) :
-  list_(cursor.list_)
+Cursor<T>::Cursor (const Cursor<T>& cursor) 
 {
+  list_l_= cursor.list_l_;
   pointer_ = cursor.pointer_;
 }
 
@@ -55,7 +51,7 @@ template<class T>
 Cursor<T>
 Cursor<T>::operator =(const Cursor<T>& c)
 {   
-  assert (&list_ == &c.list_);
+  assert (list_l_ == c.list_l_);
   pointer_ = c.pointer_;
   return *this;
 }
@@ -64,21 +60,21 @@ template<class T>
 inline void
 Cursor<T>::add (const T& th)
 {
-  list_.add (th, *this);
+  list_l_->add (th, *this);
 }
 
 template<class T>
 inline void
 Cursor<T>::insert (const T& th)
 {
-  list_.insert (th, *this);
+  list_l_->insert (th, *this);
 }
 
 template<class T>
-inline  List<T>&
-Cursor<T>::list() const
+inline List<T> *
+Cursor<T>::list_l() const
 {
-  return list_;
+  return list_l_;              // ugh!
 }
 
 template<class T>
index ea204e1dc6bb19aab4f2e574a882800fae27310a..42b0c52f3c595951e0c4a1b2e711e4613830208d 100644 (file)
@@ -5,23 +5,23 @@
 #include <assert.h>
 
 template<class T>
- void
+void
 Cursor<T>::backspace()
 {
   Cursor<T> c (*this);
   if (c.ok())
-       c--;        
-  list_.remove (*this);
+    c--;        
+  list_l_->remove (*this);
 }
 
 template<class T>
- void
+void
 Cursor<T>::del()
 {
   Cursor<T> c (*this);
   if (c.ok())
-       c++;
-  list_.remove (*this);    
+    c++;
+  list_l_->remove (*this);    
   *this = c;
 }
 
@@ -31,7 +31,7 @@ Cursor<T>
 Cursor<T>::operator -=(int j)    
 {
   while (j--)
-       (*this)--;
+    (*this)--;
   return *this;
 }
 template<class T>
@@ -39,7 +39,7 @@ Cursor<T>
 Cursor<T>::operator +=(int j)    
 {
   while (j++)
-       (*this)++;
+    (*this)++;
   return *this;
 }
 
@@ -50,10 +50,10 @@ Cursor<T>::operator +(int i) const
   Cursor<T> r = *this;
 
   if (i<0)
-       return r -(-i);
+    return r -(-i);
 
   while (i--)
-       r++;
+    r++;
 
   return r;
 }
@@ -64,10 +64,10 @@ Cursor<T>::operator -(int i) const
 {
   Cursor<T> r = *this;
   if (i<0)
-       return r +(-i);
+    return r +(-i);
 
   while (i--)
-       r--;
+    r--;
   
   return r;
 }
@@ -79,31 +79,31 @@ template<class T>
 int
 Cursor<T>::operator-(Cursor<T> rhs) const
 {
-  assert (&rhs.list_ == &list_);
+  assert (rhs.list_l_ == list_l_);
   int dif = 0;
 
   // search from *this on further up (positive difference)
   Cursor<T> c (*this);
   while (c.ok() && c.pointer_ != rhs.pointer_) 
     {
-       c--;
-       dif++;
+      c--;
+      dif++;
     }
   
   if (c.ok())
-       goto gotcha;            // so, sue me.
+    goto gotcha;               // so, sue me.
 
   // search in direction of bottom. (negative diff)
   dif =0;
   c=*this;    
   while (c.ok() && c.pointer_ !=rhs.pointer_) 
     {
-       dif --;
-       c++;
+      dif --;
+      c++;
     }
   assert (c.ok());
 
-gotcha:
+ gotcha:
   assert ((*this - dif).pointer_ == c.pointer_);
   return dif;
 }
index 981b43a10f0a577517f1b32fd83152618d783f18..9e7959f8a126423b45a064a8c66081dd68c35f65 100644 (file)
@@ -39,15 +39,15 @@ public:
     return remove_p();
   }
     
-  Link_list<T> &list() { return (Link_list<T>&)Cursor<void*>::list (); }
+  Link_list<T> *list_l() { return (Link_list<T> *)Cursor<void*>::list_l (); }
   PCursor<T> operator++(int) { return Cursor<void*>::operator++(0);}
   PCursor<T> operator--(int) { return Cursor<void*>::operator--(0); }
   PCursor<T> operator+=(int i) { return Cursor<void*>::operator+=(i);}
   PCursor<T> operator-=(int i) { return Cursor<void*>::operator-=(i); }    
   PCursor<T> operator -(int no) const { return Cursor<void*>::operator-(no);}
   int operator -(PCursor<T> op) const { return Cursor<void*>::operator-(op);}
-  PCursor<T> operator +(int no) const {return Cursor<void*>::operator+(no);}    PCursor (const Link_list<T> & l) : Cursor<void*> (l) {}
-  PCursor() : Cursor<void*> () {}
+  PCursor<T> operator +(int no) const {return Cursor<void*>::operator+(no);}
+  PCursor (const Link_list<T> & l) : Cursor<void*> (l) {}
   PCursor (const Cursor<void*>& cursor) : Cursor<void*>(cursor) { }
   void* vptr() const { return *((Cursor<void*> &) *this); }
 
index c2b459a267e66ba72e46facc83c448cbbe1ad400..a1f706b8a272956298b079379110865e648b9d5a 100644 (file)
@@ -5,12 +5,12 @@ void
 PCursor<T>::junk()
 {
 #if !defined (NDEBUG) && defined (PARANOID)
-  list().OK();
+  list_l()->OK();
 #endif
 
   delete ptr();
 #if !defined (NDEBUG)&&defined (PARANOID)
   thing() = 0;
-  list().OK();
+  list_l()->OK();
 #endif
 }
index 115d5f85c7555fc34ff59d00f5ac69dab1379d92..7394af6aa5c79269d9fb56562577321dc097258d 100644 (file)
 #include "arithmetic-operator.hh"
 #include "fproto.hh"
 
+/**
+   Rational numbers.  Included is support for + and - infinity.
+ */
 class Rational {
+  /**
+     Sign of rational.
+     -2, .. 2
+
+     -2,2 is - and + infinity.
+     -1,1 is negative and positive.
+     0 if *this is zero.
+   */
   int sign_;
   unsigned int num_, den_;
   void normalise ();
@@ -32,12 +43,17 @@ public:
   void invert ();
   int num  () const { return sign_ * num_; }
   int den  () const { return den_; }
+  int num_i  () const { return sign_ * num_; }
+  int den_i  () const { return den_; }
   Rational truncated () const;
   void negate ();
   operator bool () const;
   operator int () const;
   operator double () const;
   Rational operator - () const;
+  /**
+     Initialize to 0. 
+   */
   Rational ();
   Rational (int, int =1);
   Rational (double);
@@ -45,9 +61,9 @@ public:
 
   Rational &operator = (Rational const &);
   Rational &operator *= (Rational);
-  Rational  &operator /= (Rational);  
-  Rational  &operator += (Rational);
-  Rational  &operator -= (Rational);
+  Rational &operator /= (Rational);  
+  Rational &operator += (Rational);
+  Rational &operator -= (Rational);
   static int compare (Rational const&, Rational const&);
   int sign () const;
   String str () const;
index 10b3bc9c2c3a2d46d26c6be05ff70bf9f32daf87..cf99657acbfd6081f1bd0963c734594ece3fbf57 100644 (file)
@@ -41,7 +41,7 @@ Rational::truncated () const
 
 Rational::Rational ()
 {
-  sign_ = 1;
+  sign_ = 0;
   num_ = den_ = 1;
 }
 
@@ -53,6 +53,10 @@ Rational::Rational (int n, int d)
   normalise ();
 }
 
+Rational::Rational (Rational const &r)
+{
+  copy (r);
+}
 
 static
 int gcd (int a, int b)
@@ -252,11 +256,6 @@ Rational::operator = (Rational const &r)
   return *this;
 }
 
-Rational::Rational (Rational const &r)
-{
-  copy (r);
-}
-
 String
 Rational::str () const
 {
index 00000cc6c623d10d27624d57bcdc8dc04c4f92b9..a9a23da2da423b7353a3339f445340820ce3a5d1 100644 (file)
@@ -5,7 +5,7 @@ depth = ..
 INI_FILES = $(FLY_FILES) $(LY_FILES)
 # DIST_FILES = Makefile $(INI_FILES)
 
-INSTALLATION_DIR=$(datadir)
+INSTALLATION_DIR=$(datadir)/ly/
 INSTALLATION_FILES=$(INI_FILES)
 
 LOCALSTEPMAKE_TEMPLATES=mutopia
index 0aa5267045ce1d9e355ccf497dbea5bb11b57be7..f8b283faf4134779176f097fa7598cc31d6c2d73 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.6";
+\version "1.0.7";
 
 
 \include "declarations.ly"
index 42f06c1a1dd97a62054975686c34c4a7a196657f..e2744aa3524c73288def273ce287f27afe0a9250 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.6";
+\version "1.0.7";
 
 
 \include "declarations.ly";
index 6c26e3840d5e45ad49feb95d2f816a985b7f9b53..4bf04f596322cce98826ad0af840110b240a4d97 100644 (file)
@@ -1,7 +1,7 @@
 % Toplevel initialisation file. 
        
 
-\version "1.0.6";
+\version "1.0.7";
 
 
 \include "declarations.ly"
index 441f9c01824142c6a8ba6b453bd2b10fa469cbe8..5fddea855eb21839c32ebb28e5e608cf6d192e43 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.6";
+\version "1.0.7";
 
 
 \include "declarations.ly"
index be324756689ace5695f6d3a05756a56cc0aea594..54c737dd6174f06d100b53ef7609107309d0399d 100644 (file)
@@ -23,6 +23,7 @@ StaffContext=\translator {
        \consists "Staff_sym_engraver";
        \consists "Collision_engraver";
        \consists "Rest_collision_engraver";
+       \consists "Tuplet_engraver";
 %{
        Uncomment to get bar numbers on single staff systems:
        
index b80b83d735bac505d6e14efd23348b98ded36237..0de947cf265be6841c69574bf09ca67f4fbacbe0 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.6";
+\version "1.0.7";
 
 
 \include "declarations.ly"
index 1ab82d80162219e8a5b83e163c9aac296576abc5..d3d0c5294c1348520872989b62a1558d9b0d396b 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.6";
+\version "1.0.7";
 
 
 \include "declarations.ly"
index f3622d278d1af0d6b538bd75b93f81ed209115c4..3627b7e86458bf33f0778ddd374efd49e9338b54 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.6";
+\version "1.0.7";
 
 
 \include "declarations.ly";
index ea7a7a0529018ae2809204c51ce527bf6ff514f5..c7f7352521dd78c1ba5705ab2074af190964fed1 100644 (file)
@@ -6,7 +6,7 @@
 
 
 
-\version "1.0.6";
+\version "1.0.7";
 
 paper_sixteen = \paper {
        staffheight = 16.0\pt;
index b73b3817bf0703469d92f9f9a668698800d53e5d..c8bf25b35b5fbdb4cf633c9b482c463a2de484e2 100644 (file)
@@ -5,7 +5,7 @@
  \include "table13.ly";
  \include "table16.ly";
 
-\version "1.0.6";
+\version "1.0.7";
 
 paper_twenty = \paper {
        staffheight = 20.0\pt;
index dedefdc038f6324a4d4692baa74e2493636b6ec6..426d1e780988d17d85a16cd4d7bbbf596bea3fa8 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 one = \notes\relative c{
        c'' d e f
index d5f945ffab0a293fd4dc48c04bdc3783c5d3dea5..bdc719a5d4f401aa2f811dc50376c5c21aea048f 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 
 blah = \notes {
index aeeaa4f93acc63706b64f24a8ad4e0f3940ecea8..c327f45d81fc51bcf071418390a60607a9aa47c7 100644 (file)
@@ -10,7 +10,7 @@ copyright =    "public domain";
 Tested Features: example file with comments
 
 %}
-\version "1.0.6";
+\version "1.0.7";
 
 
 % the % is a comment.
index 40a62279be56c2765a344cfd0727391e9c8e5871..ffcfe99695d31df6d1fe6201f615c6e7f35141de 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 part = \notes {
        c-1 c c c
        r1*3
index 3e466e4fcb114803bcd9efa2aa828cd40bdd421f..360902ce673e0d9fc3233efc116be9cdc3f3d154 100644 (file)
@@ -28,7 +28,7 @@
 % \lbheel \lbheel \lfheel \lftoe
 % \rbheel \rbtoe \rfheel \rftoe
 
-\version "1.0.6";
+\version "1.0.7";
 
 \score{
                \notes {
index da3004548de230a50102bb10e9fd5090c9d3a1df..876299fdb4a4a7edd60ffb6654a8c41a4e4b86da 100644 (file)
@@ -23,7 +23,7 @@
    * organ staff...
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 
 
index 197df1fda69b45d27e048c730e1d1f5930a2cbed..75558c339a09cabbf272052ae4f2d0faa45c70db 100644 (file)
@@ -7,7 +7,7 @@ TestedFeatures =         "multiple meters, beaming, unsynced bars, userdefd engravers";
 
 
 
-\version "1.0.6";
+\version "1.0.7";
 
 ritme = \notes\transpose c'' {
        \time  4/4;
index de9a2c496b1ec85736a42e44e2160e66c95195dd..4992d6ad227e55a77233208bbc3290294d15663c 100644 (file)
@@ -16,7 +16,7 @@ copyright =    "public domain";
 % scales with accents.
 %
 
-\version "1.0.6";
+\version "1.0.7";
 blah =         \notes {
                \time 6/8;      
 \transpose c {
index 869836046b31eba400690f60eebf31a2d798866d..797eb4f5df20a875a4283172ad203cd7f9e56c14 100644 (file)
@@ -1,5 +1,5 @@
        
-\version "1.0.6";
+\version "1.0.7";
 
 
 blah =         \notes{ \transpose c'' {
index 6230a2acb06c71e5aaac1c671ffdc3ce7ce92f09..d707a6c9a9144d25eb2ced17855e7a851991b95b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.6";
+\version "1.0.7";
 \score{
        \notes \transpose c'''{
                \stemup
index 895c1b5b261f613d43773e2f565d852587e04215..e12aab30f241b28eacc6465554a2c767b293e719 100644 (file)
@@ -1,7 +1,7 @@
 
 
 
-\version "1.0.6";
+\version "1.0.7";
 
 onestaff = \type Staff = foo\notes  {
        \property Staff.instr = instr
index fe5b0aa0744c36c48b680452ed311c81e08f56a2..362c7232e28f17270fe75c95da0f828142af0cd7 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.4";
+\version "1.0.7";
 
 \score{
        \notes\transpose c'{
index 41cdc2e5e4b96c54c7c6b98de6fedea91804ad02..a5148faa475bfddd7377354738ca5bf8d059b5fb 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 \score{
        \notes\transpose c''{
index d961f90d8647de0a83a02f2452fd3304e697f448..dad9d23498b7d062f246c4363d69a0c8bd1f5d13 100644 (file)
@@ -6,7 +6,7 @@ copyright =      "PD";
 
 TestedFeatures =        "beams and beamflags";
 }
-\version "1.0.6";
+\version "1.0.7";
 
 \score{
        <
index 7ac2085fc70dbe96e823dbc89c8eb3dfd68a9677..e18db38aff4738e54d0180724568774cd69ef06a 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests Feta embedded slurs" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 shortlong = \notes{
        c4()c( c c  |
index 4e0ea683890c49ca27d592bf682052fb42e30b56..846cf62b425d74e078eb250cb4f4d995612dc50e 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 \score {
        \notes{ 
index c545798657d82aee04f6548b5d346c3f8bef99cb..cc84405cfb21cdca6108555099021df26e94622a 100644 (file)
@@ -5,7 +5,7 @@ enteredby =      "HWN,JCN";
 copyright =     "public domain";
 Tested =        "test the Collision resolution ";
 }
-\version "1.0.6";
+\version "1.0.7";
 
 
 
index c0654ac96d1cc23d390b6098853fdbb817c19fd0..ef013933d28c29f0fdd82d1bb1c98f8b25cf9e12 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 
 \score {
index 3f06328cda705a9d0d7d12bb675ae57ae0612033..bdbf2ee191f6bd3278e915dd9e413280e7ca2d1a 100644 (file)
@@ -7,9 +7,9 @@ TestedFeatures = "This file tests silly line shapes";
 
 \include "paper20.ly"
 
-\version "1.0.6";
+\version "1.0.7";
 
-oden = \lyric{ 
+oden = \lyrics
        O8 |
        den-8. ne-16 boom,4. o8 | 
        den-8. ne-16 boom.4.  Wat8 |
@@ -17,7 +17,7 @@ oden = \lyric{
        won-8. der-16 schoon4 _8
 }
 
-ikheb = \lyric{
+ikheb = \lyrics{
        Ik8 | 
        heb u laatst4. in_'t8 |
        bos8. zien16 staan4 _8 toen8 |
@@ -25,7 +25,7 @@ ikheb = \lyric{
        kaars-8. jes16 aan.4 _8
 }
 
-ugloeit = \lyric{
+ugloeit = \lyrics{
        U8 |
        gloeit in bar-4. re8 | 
        win-8. ter-16 tijd,4 r8 als8 |
index 03db2071a026906d3b9ba04b18552f5269ad4902..29140d0b45a237f6e87ef585c5882f349f709a97 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 \score{
        \notes{
index 91a236b2b59b768c38be5f3cfc84029ce1929951..6a1dedc89ccfa4968cb41a25f6a8f97a3e43b011 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 \score{
        \notes \relative c {
index d4c2e7c4874757985688e967168dcd94ecfb463d..b7a5c7d520e4d82fed0a091722d4a681a28c3674 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 FontBody=      \notes\transpose c''{ 
                \bar "|:";
index 9d38c7f5f3c7769fca9a4e49e3485090753b2c5c..7692b8c90b31da5e0153cfd87f17521dcc0d1c9d 100644 (file)
@@ -7,7 +7,7 @@ description = "This file tests the Feta music font";
 % "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "font-body.ly"
 \score{
index 3b1364e1811933e0bf48b88482f0fbd7f826989a..2c32786c811d6c515c1b2ccd0668958895ac77fc 100644 (file)
@@ -7,7 +7,7 @@ description = "This file tests the Feta music font";
 % "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 \include "font-body.ly"
 
 \score{
index 38dd6faa522591dbe54b4ef6ebc08062dab87e22..62ca0432299b95c3778ab5ea477448e1852df932 100644 (file)
@@ -4,7 +4,7 @@ copyright =      "PD";
 TestedFeatures =        "This file tests some nasty Gourlay spacings";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 %{
 
index a769b569c549264bae95af3b8809f1e71893a289..81db2a8871bc232781cfe7168e1205e064f704ff 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "table13.ly";
 \include "table16.ly";
index 66a786342c2eced9e9c0ba0b7a8c70dba25ab86c..49af9b64fdbcb6cfa6b9c2a85e45493ae469b240 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 toeter_i = \notes\relative c {
        \property Staff.instrument = "Toeters"
index e47814a6bc36166de6d9ce174f1dd7231899ed80..211c7c1e20b1cf9cb0abf6c3e70437f052a23f7e 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 %{
 test key itemv breaking
index ae746715e192a0f653f7fa3ccdeccc3031916dd6..af9d1141283e0cee0976ca684f9449371cb13a63 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 \score{
        \notes\relative c'{
                [c16 \stemdown c'' \stemboth c,, d]
index 8feb99bfa4486406a014d08d663b99a332fbf0d2..f5e9deb060633721f9fc97982be4e20b930d97c4 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 global = \notes {
   s1 | \mark "A";
index 54bd95e7556ee7a73c08f0badb3f54fee8d6ff47..ac055ef54f80897829f4b49f4712b402f2e478f1 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 voice_one = \notes\transpose c'        {  \stemup
        R1 * 2 | f'4-. r r2 | R1 * 3 |
index 05d82291567d4f794dd23cb4a2a55e2ccc89b7a1..531b549afa14b42fbeafe9035606e888e37724c3 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 \score {
 
index 102dfc59e614f2ea2c258adecbbd6c48adf923e6..72b545bc38cce600530dc974d7aa15a75e25ab8b 100644 (file)
@@ -1,7 +1,7 @@
 
 
 
-\version "1.0.6";
+\version "1.0.7";
 
 onestaff =     \type Staff = foo\notes  {
                \property Staff.instr = instr
index 3a5ac5dce664512f54e2b38e439686c73d98a773..70f7cfb15ae53625ffbb66a7dd116fb0aabf853e 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests Feta embedded slurs" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 shortlong = \notes{
        c4()c( c c  |
index edee54434dedd2c660546d98f7863570abf66418..10cf4bc7826eb4f375754b51271e95d2b4d862a4 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 % bug
 % excentric slur can't handle this ...
index 43c422d38e4a16aad53fb8d74033a6967cbb5d21..96f89df4c5cec7b5698ab068d0414aaf40722f89 100644 (file)
@@ -1,5 +1,5 @@
 % test damping
-\version "1.0.6";
+\version "1.0.7";
 
 \score{
        \notes\relative c'{
index 8b24a4e5a26b5337ea635009d9d56a450571b941..1cc9dbc7c49d3bdce692b57b658be4663aea6af2 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 % urg, the direction of the slur gets swapped!
 \score{
index 459ed7e48fd17a22153fa03eb7224c42087182c3..248f64ca9f5e46273fe1abe70f70ad74ce693c15 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.6";
+\version "1.0.7";
 
 \score{
        \notes\transpose c'{
index 6ba725555033a991ffa1d89d72354ceeb774d2f9..baf346b55156655cb17a18c314c6000afb29aa4b 100644 (file)
@@ -6,7 +6,7 @@ copyright =      "public domain";
 TestedFeatures =        "This file tests various spacings";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 multipart = \notes{ 
     \type StaffGroup < 
index 667be275d6f5e61e55116a239b9bc922165c3107..cf19937c7d4e73b7e5031dee9500c15c7b986763 100644 (file)
@@ -8,7 +8,7 @@ of beams";
        
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 beamintervals = \notes{
                \time 7/4;
index 39eb2e13bcfb7c113f9216d71ea5905f6130c4c9..01db413dbc233d8e3b68d6f153a631dba3760954 100644 (file)
@@ -1,6 +1,6 @@
-\version "1.0.6";
+\version "1.0.7";
 
-$somewhat_long = \lyric{
+$somewhat_long = \lyrics{
        \property Lyrics . textstyle = "roman" 
        AaaaaaA2
        BbbbbbB2
@@ -10,7 +10,7 @@ $somewhat_long = \lyric{
        FfffffF2
 }
 
-$rather_long = \lyric{
+$rather_long = \lyrics{
        \property Lyrics . textstyle = "roman" 
        LLLLoooonggggg2 
        Syyllllaaabbble2 
@@ -20,7 +20,7 @@ $rather_long = \lyric{
        Syyyylllaaabbble2
 }
 
-$quite_long = \lyric{
+$quite_long = \lyrics{
        \property Lyrics . textstyle = "roman"
        LLLLLLLLLooooongggggggg2 
        Syyyyyyyyyyyyylllllllaaaaaabbble2 
index 1b21d5308b6047d8ef718ae6bdb4355687d2b1a0..e457a475e493772d223861ebb9cb7a00cc65dadc 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 
 %  middle tie is wrong
index cddf1e9cc83c60a3c88221fae864b15da1b49944..1d58f5ddcfa75eb43a122a995b9ffa2967bd6e07 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.6";
+\version "1.0.7";
 
 tie = \notes\transpose c''{
 
index ae1b5ee610a267f91a744686e2daa790675e7fa4..ff7c1b24cc865e01e6228d8065b482e10666ca23 100644 (file)
@@ -10,7 +10,7 @@ source =      "urtext";
 instrument=    "Instrument";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \score{
        \notes
index 8483b8735c831467d847ce64b47de689175315a2..885feb994b54021561e9546fbdeb3086c6d7b1cc 100644 (file)
@@ -22,7 +22,7 @@ copyright =    "public domain";
 }
 
 
-\version "1.0.6";
+\version "1.0.7";
 
 vOne = \notes \relative c''{
         \clef"violin";
index b74d873faf6648a5346e3f3ce8958707511358ea..ae4540940ca6d430274c38d00635f5ab04cab8b9 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.6";
+\version "1.0.7";
 
 \score {
 \notes <
index 1d3537747a1274f2bae5d021380579004f688d6b..c2b72bcd57c92510ae33ac99692f0c6d8c32bbe3 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests trills" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \score{
        \notes{ 
index b934bf900ad7ba08c4653f7a8844098a957767de..46c35973e34c959fbfb21dbd7a077de823134328 100644 (file)
@@ -12,7 +12,7 @@ copyright =    "public domain";
 Tested Features                lyrics and chords
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 melodie = \notes\relative c {
         \clef"violin";
@@ -26,7 +26,7 @@ melodie = \notes\relative c {
         f4^"F" f |      e^"C" e |       d^"G7" d |      c2^"C"   |
 }
 
-text = \lyric{ 
+text = \lyrics
         \property Lyrics . textstyle =  "italic"
 
         Ah!4 vous dir- ai_- je ma man2
@@ -40,7 +40,7 @@ text = \lyric{
 
 \score {
         <  \notes \type Staff \melodie
-           \lyric   \type Lyrics \text
+           \lyrics   \type Lyrics \text
         >
         \paper {  }
 }
index 739108a64af34631600363748fbeaf556c22af0a..1d1520f6afde8c2c7413f46bcf8bc29a2c636a80 100644 (file)
@@ -20,7 +20,7 @@ traditional song in various languages.
 Tested Features: lyrics, interleaving lyrics and staffs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 melody = \notes \relative c'' {
        \clef violin;
@@ -54,7 +54,7 @@ global = \notes {
        \bar ":|";
 }
 
-tekst = \lyric{ 
+tekst = \lyrics
        Al-4 tijd is Kort- jak- je ziek,2
        midden4 in_de week maar s,_zon- dags niet.2
 % ugly hack: insertion of  empty syllables creates columns on extra 
@@ -74,7 +74,7 @@ Ja inderdaad. Dit is geen educatieve danwel muzikaal verantwoorde
 tekst. Mogen wij ook af en toe ergens op afgeven?
 %}
 
-hegedraagjetekst = \lyric{ 
+hegedraagjetekst = \lyrics
        Al-4 tijd zuigt Bill Gates mijn piek,2
        "\TeX"4 is slecht- ser dan mu- ziek.2
        s,_Zon-4 dags gaat het door een raam,2
@@ -83,7 +83,7 @@ hegedraagjetekst = \lyric{
        "\TeX"4 is slecht- ser dan mu- ziek.2
 }
 
-texte = \lyric{ 
+texte = \lyrics
        \property Lyrics . textstyle" =  "italic" 
 %      \property Lyrics . textstyle" =  "roman" 
        Ah!4 vous dir- ai_- je ma- man2
@@ -94,7 +94,7 @@ texte = \lyric{
        Va-4 lent mieux que la rai- son2
 }
 
-texti = \lyric{
+texti = \lyrics{
        \property "Lyrics"."textstyle" =  "roman"
        Twin-4 kle, twin- kle, lit- tle star,2
        How4 I won- der what you are.2
@@ -104,7 +104,7 @@ texti = \lyric{
        How4 I won- der what you are!2
 }
 
-textii = \lyric{
+textii = \lyrics{
        When4 the bla- zing sun is gone,2
        When4 he no- thing shines up- on,2
        Then4 you show your lit- tle light,2
@@ -114,7 +114,7 @@ textii = \lyric{
        
 }
 
-textiii = \lyric{
+textiii = \lyrics{
        Then4 the tra- veler in the dark2
        Thanks4 you for your ti- ny spark;2
        He_could4 not see which way to go,2
index 7bdf8d00dccf0822f3b7bec7d4ea266124099ca7..f65348ae6daa2a199124f5e49867bf42bf7ef337 100644 (file)
@@ -38,6 +38,13 @@ Duration::duration_type_b (int t)
   return t == Duration_convert::type2_i (Duration_convert::i2_type (t));
 }
 
+void
+Duration::compress (Moment m)
+{
+  plet_.iso_i_ *= m.num_i ();
+  plet_.type_i_ *= m.den_i (); 
+}
+
 // ugh, what's this?
 // i should be called "mom ()", ... or at least "length_mom ()"
 Moment
index 367672ac4e1b53cefc4998cf6710807315ab9d2b..509a6d69d93765e96155f42d545f32cee43355cb 100644 (file)
@@ -27,6 +27,7 @@ struct Duration {
   bool plet_b ();
   String str () const;
   void set_plet (int,int );
+  void compress (Moment);
 
   static bool duration_type_b (int t);
   void set_ticks (int ticks_i );
diff --git a/lily/auto-plet-engraver.cc b/lily/auto-plet-engraver.cc
new file mode 100644 (file)
index 0000000..8812f62
--- /dev/null
@@ -0,0 +1,109 @@
+/*   
+  auto-plet-engraver.cc --  implement Auto_plet_engraver
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "auto-plet-engraver.hh"
+#include "command-request.hh"
+#include "slur.hh"
+#include "note-column.hh"
+
+bool
+Tuplet_engraver::do_try_request (Request *r)
+{
+  Command_req * c = r->access_Command_req ();
+  if (!(c &&
+      c->access_Bracket_req ()))
+    {
+      return false;
+    }
+
+  Bracket_req * b = c->access_Bracket_req ();
+  bracket_req_arr_.push (b);
+  return true;
+}
+
+
+void
+Tuplet_engraver::do_process_requests ()
+{
+  int stopcount =0;
+  Link_array<Slur> start_arr;
+  
+  for (int i=0; i < bracket_req_arr_.size (); i++)
+    {
+      if (bracket_req_arr_[i]->spantype == Span_req::STOP)
+       stopcount++;
+      if (bracket_req_arr_[i]->spantype == Span_req::START)
+       {
+         Slur *sp =new Slur;
+         start_arr.push  (sp);
+         announce_element (Score_element_info (sp, bracket_req_arr_[i]));
+       }
+    }
+
+  for (; stopcount--; )
+    {
+      Slur *sp = started_span_p_arr_.pop ();
+      stop_now_span_p_arr_.push (sp);
+    }
+
+  for (int i=0; i < start_arr.size (); i++)
+    started_span_p_arr_.push (start_arr.pop ());
+}
+
+void
+Tuplet_engraver::acknowledge_element (Score_element_info i)
+{
+  if (i.elem_l_->is_type_b (Note_column::static_name ()))
+    {
+      Note_column *nc = (Note_column*)i.elem_l_->access_Item ();
+      for (int j =0; j  <started_span_p_arr_.size (); j++)
+       started_span_p_arr_[j]->add_column (nc);
+    }
+}
+
+void
+Tuplet_engraver::do_pre_move_processing ()
+{
+  typeset_all ();
+}
+
+void
+Tuplet_engraver::typeset_all ()
+{
+  for (int i=0; i < stop_now_span_p_arr_.size (); i++)
+    {
+      typeset_element (stop_now_span_p_arr_[i]);
+    }
+
+  stop_now_span_p_arr_.clear ();
+}
+
+void
+Tuplet_engraver::do_removal_processing ()
+{
+  typeset_all ();
+  for (int i=0; i < started_span_p_arr_.size (); i++)
+    {
+      typeset_element (started_span_p_arr_[i]);
+    }  
+}
+
+ADD_THIS_TRANSLATOR(Tuplet_engraver);
+IMPLEMENT_IS_TYPE_B1(Tuplet_engraver, Engraver);
+
+Tuplet_engraver::Tuplet_engraver()
+{
+}
+
+
+void
+Tuplet_engraver::do_post_move_processing ()
+{
+  bracket_req_arr_.clear (); 
+}
index d314f35385f8150de87d7d0eb2815ba50e0c0905..b319c720895f7ce841c7ba5a83be9b49f07b9f95 100644 (file)
 #include "change-translator.hh"
 #include "debug.hh"
 
-Change_iterator::Change_iterator (Change_translator *change_l)
-{
-  change_l_ = change_l;
-}
 
 void
 Change_iterator::error (String reason)
 {
-  String to_type = change_l_->change_to_type_str_;
-  String to_id =  change_l_->change_to_id_str_;
+  String to_type = change_l ()->change_to_type_str_;
+  String to_id =  change_l ()->change_to_id_str_;
 
   String warn1 = _f ("can't change `%s\' to `%s\'", to_type, to_id) 
     + ": " + reason;
-  String warn2= "Change_iterator::process_and_next (): " 
+  String warn2= "Change_iterator::do_process_and_next (): " 
     + report_to_l ()->type_str_ + " = `"
     + report_to_l ()->id_str_ + "\': ";
   warning (warn2);
-  change_l_->warning (warn1);
+  change_l ()->warning (warn1);
+}
+
+Change_translator *
+Change_iterator::change_l ()
+{
+  return (Change_translator*) music_l_;
 }
 
 /*
   move to construct_children ?
  */
 void
-Change_iterator::process_and_next (Moment m)
+Change_iterator::do_process_and_next (Moment m)
 {
   Translator_group * current = report_to_l ();
   Translator_group * last = 0;
 
-  String to_type = change_l_->change_to_type_str_;
-  String to_id =  change_l_->change_to_id_str_;
+  String to_type = change_l ()->change_to_type_str_;
+  String to_id =  change_l ()->change_to_id_str_;
 
   /* find the type  of translator that we're changing.
      
@@ -68,13 +70,13 @@ Change_iterator::process_and_next (Moment m)
          We could change the current translator's id, but that would make 
          errors hard to catch
          
-          last->translator_id_str_  = change_l_->change_to_id_str_;
+          last->translator_id_str_  = change_l ()->change_to_id_str_;
        */
        error ("I'm one myself");
       }
   else
     error ("None of these in my family.");
-  Music_iterator::process_and_next (m);
+  Music_iterator::do_process_and_next (m);
 }
 
 IMPLEMENT_IS_TYPE_B1 (Change_iterator, Music_iterator);
index 998ac40224b2bc8d6a9f69c83388a7c3f09f68e6..34c91c586c413bad45187422e17d3846bfed157a 100644 (file)
 #include "music-list.hh"
 
 
-Simultaneous_music_iterator::~Simultaneous_music_iterator()
-{
-}
-
-Simultaneous_music_iterator::Simultaneous_music_iterator (Simultaneous_music const *simultaneous_music_C)
-{
-  simultaneous_music_C_ = simultaneous_music_C;
-}
-
 void
 Simultaneous_music_iterator::construct_children()
 {
   int j = 0;
-  for (PCursor<Music*> i (simultaneous_music_C_->music_p_list_p_->top());  
+  for (PCursor<Music*> i (simultaneous_music_l ()->music_p_list_p_->top());  
        i.ok(); j++, i++) 
     {
       Music_iterator * mi = get_iterator_p (i.ptr());
       if (mi->ok()) 
        {
-         if  (simultaneous_music_C_->translator_type_str_.empty_b ())
-           set_translator (mi->report_to_l()->ancestor_l (simultaneous_music_C_->multi_level_i_));
+         if  (simultaneous_music_l ()->translator_type_str_.empty_b ())
+           set_translator (mi->report_to_l()->ancestor_l (simultaneous_music_l ()->multi_level_i_));
          children_p_list_.bottom().add (mi);
        }
       else 
@@ -54,7 +45,7 @@ Simultaneous_music_iterator::do_print() const
 }
 
 void
-Simultaneous_music_iterator::process_and_next (Moment until)
+Simultaneous_music_iterator::do_process_and_next (Moment until)
 {
   for (PCursor<Music_iterator*> i (children_p_list_.top()); i.ok ();) 
     {
@@ -67,7 +58,7 @@ Simultaneous_music_iterator::process_and_next (Moment until)
       else
        i++;
     }
-  Music_iterator::process_and_next (until);
+  Music_iterator::do_process_and_next (until);
 }
 
 
@@ -90,3 +81,9 @@ Simultaneous_music_iterator::ok() const
 {
   return children_p_list_.size();
 }
+
+Simultaneous_music*
+Simultaneous_music_iterator::simultaneous_music_l ()const
+{
+  return (  Simultaneous_music *) music_l_;
+}
index 24f2fee50bdbf9bbabb8b829ecb0fdf63062e9fe..b32dc96ff4da33a1bf75004ad68ad85e7db293fa 100644 (file)
@@ -54,12 +54,20 @@ Bar_req::do_equal_b (Request*r) const
 
 IMPLEMENT_IS_TYPE_B1(Bar_req,Command_req);
 
+IMPLEMENT_IS_TYPE_B2(Bracket_req, Command_req, Span_req);
+
 void
 Bar_req::do_print() const
 {
   DOUT << type_str_;
 }
 
+void
+Bracket_req::do_print () const
+{
+  Span_req::do_print ();
+}
+
 Bar_req::Bar_req (String s)
 {
   type_str_ = s;
diff --git a/lily/compressed-music-iterator.cc b/lily/compressed-music-iterator.cc
new file mode 100644 (file)
index 0000000..c5c60ac
--- /dev/null
@@ -0,0 +1,68 @@
+/*   
+  compressed-music-iterator.cc --  implement Compressed_music_iterator
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "compressed-music-iterator.hh"
+#include "compressed-music.hh"
+#include "musical-request.hh"
+#include "translator-group.hh"
+#include "command-request.hh"
+
+IMPLEMENT_IS_TYPE_B1(Compressed_music_iterator, Music_wrapper_iterator);
+
+Compressed_music_iterator::Compressed_music_iterator ()
+{
+  Bracket_req pr;
+  pr.spantype = Span_req::START;
+  //  pr.plet_i_ = 1;
+  start_req_p_ = new Bracket_req (pr);
+  pr.spantype = Span_req::STOP;
+  stop_req_p_ =new Bracket_req (pr);
+}
+
+Compressed_music_iterator::~Compressed_music_iterator ()
+{
+  delete start_req_p_;
+  delete stop_req_p_;
+}
+
+Compressed_music *
+Compressed_music_iterator::compressed_l () const
+{
+  return (Compressed_music*) music_l_;
+}
+
+void
+Compressed_music_iterator::construct_children ()
+{
+  /*
+    start_req_p_->plet_i_ = compressed_l ()->den_i_;
+    stop_req_p_->plet_i_ = compressed_l ()->den_i_;  
+  */
+  Music_wrapper_iterator::construct_children ();
+}
+
+void
+Compressed_music_iterator::do_process_and_next (Moment m)
+{
+  if (first_b_)
+    {
+      bool success = report_to_l ()->try_request (start_req_p_);
+      if (!success)
+       music_l_->warning ( _("No one to print a tuplet start bracket"));
+    }
+
+  Music_wrapper_iterator::do_process_and_next (m);
+  
+  if (!ok ())
+    {
+      bool success = report_to_l ()->try_request (stop_req_p_);
+      if (!success)
+          music_l_->warning ( _("No one to print a tuplet stop bracket"));
+    }
+}
diff --git a/lily/compressed-music.cc b/lily/compressed-music.cc
new file mode 100644 (file)
index 0000000..5c03ef1
--- /dev/null
@@ -0,0 +1,23 @@
+/*   
+  compressed-music.cc --  implement Compressed_music
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "compressed-music.hh"
+
+
+Compressed_music::Compressed_music (int n, int d,Music *mp)
+  : Music_wrapper (mp)
+{
+  num_i_ = n;
+  den_i_ = d;
+  element_p_->compress (Moment (num_i_,den_i_));
+}
+
+IMPLEMENT_IS_TYPE_B1(Compressed_music, Music_wrapper);
+
+
diff --git a/lily/include/auto-plet-engraver.hh b/lily/include/auto-plet-engraver.hh
new file mode 100644 (file)
index 0000000..a8cafb9
--- /dev/null
@@ -0,0 +1,39 @@
+/*   
+  auto-plet-engraver.hh -- declare Auto_plet_engraver
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef AUTO_PLET_ENGRAVER_HH
+#define AUTO_PLET_ENGRAVER_HH
+
+#include "engraver.hh"
+
+class Tuplet_engraver : public Engraver
+{
+  void typeset_all ();
+public:
+  Tuplet_engraver ();
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  TRANSLATOR_CLONE(Tuplet_engraver);
+
+protected:
+  Link_array<Bracket_req> bracket_req_arr_;
+
+  Link_array<Slur> started_span_p_arr_;
+  Link_array<Slur> stop_now_span_p_arr_;
+
+  virtual void do_removal_processing ();
+  virtual void acknowledge_element (Score_element_info);
+  virtual void do_pre_move_processing ();
+  virtual bool do_try_request (Request*r);
+  virtual void do_process_requests ();
+  virtual void do_post_move_processing ();
+};
+
+
+
+#endif /* AUTO_PLET_ENGRAVER_HH */
index a4d435be5b9b46f59c762b2091871778832f09ac..409b3a648d0ed2e68fa83d3fdc0371dca05562ed 100644 (file)
 
 class Change_iterator : public Music_iterator
 {
-  Change_translator *change_l_;
-
+  Change_translator *change_l ();
   void  error (String);
   
 public:
   DECLARE_MY_RUNTIME_TYPEINFO;
-  Change_iterator (Change_translator* prop_l);
 protected:
-  virtual void process_and_next (Moment);
+  virtual void do_process_and_next (Moment);
 };
 
 #endif
index be48f33572502738027db2c921709e4355c1ac45..0ce4d63a3276a7e34997d7440321c9cb9e8f0cb1 100644 (file)
 
 class Simultaneous_music_iterator : public Music_iterator
 {
-  const Simultaneous_music *simultaneous_music_C_;
+  Simultaneous_music *simultaneous_music_l() const;
   Pointer_list<Music_iterator*> children_p_list_;
 public:
-  ~Simultaneous_music_iterator();
-  Simultaneous_music_iterator (Simultaneous_music const*);
   DECLARE_MY_RUNTIME_TYPEINFO;
 protected:
   virtual void do_print() const;
   virtual void construct_children();
-  virtual void process_and_next (Moment);
+  virtual void do_process_and_next (Moment);
   virtual Moment next_moment() const;
   virtual bool ok() const;
 };
index 56c4fbc1d851c5b487559e2b753b6597da4ec642..813a15339361c6a0d29150244dc1fb10b73b0e76 100644 (file)
@@ -37,7 +37,6 @@ public:
   Direction octave_dir_;
   String clef_type_str_;
 
-  /* ************** */
    
   Clef_engraver();
   DECLARE_MY_RUNTIME_TYPEINFO;
index a01afd3c746d30dbc3f34d6273028fd126590c60..3b412a321f4f128db6ba897b641b567f78ebe92f 100644 (file)
@@ -34,7 +34,6 @@ struct Column_info {
 
   Drul_array< Array<Spacer_rod> > rods_;
   
-  /* *************** */
   Column_info();
   Column_info (Paper_column *,Real const *);
 
index e46991dc33f33ad74bab582494d6fb3f5562ae08..964933e2df6d2a3acf9d70f9da71b90bb24c6955 100644 (file)
@@ -21,7 +21,6 @@ struct Column_x_positions {
   Real energy_f_;
   bool satisfies_constraints_b_;
 
-  /* ************** */
   void OK() const;
   ~Column_x_positions();
   void solve_line();
index 3e187487f3895eee0d4dd0c9dc4fadac1b2fa07f..a76a3518615ff765dbb8e1c73e9de2f3fc1c5caf 100644 (file)
@@ -32,6 +32,7 @@ public:
     DEFAULTACCESSOR(Command_script_req)
     DEFAULTACCESSOR(Break_req)
     DEFAULTACCESSOR(Mark_req)
+  DEFAULTACCESSOR(Bracket_req)
 };
 
 
@@ -170,4 +171,10 @@ public:
   REQUESTMETHODS(Clef_change_req);
 };
 
+class Bracket_req :  public Span_req, public Command_req {
+
+public:
+  REQUESTMETHODS(Bracket_req);
+};
+
 #endif // COMMANDREQUEST_HH
diff --git a/lily/include/compressed-music-iterator.hh b/lily/include/compressed-music-iterator.hh
new file mode 100644 (file)
index 0000000..84b92ab
--- /dev/null
@@ -0,0 +1,30 @@
+/*   
+  compressed-music-iterator.hh -- declare Compressed_music_iterator
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef COMPRESSED_MUSIC_ITERATOR_HH
+#define COMPRESSED_MUSIC_ITERATOR_HH
+
+#include "music-wrapper-iterator.hh"
+
+class Compressed_music_iterator : public Music_wrapper_iterator
+{
+public:
+  Bracket_req* start_req_p_;
+  Bracket_req* stop_req_p_;
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  Compressed_music_iterator();
+  ~Compressed_music_iterator ();
+  virtual void do_process_and_next (Moment);
+  virtual void construct_children ();
+  Compressed_music *compressed_l ()const;
+};
+
+
+#endif /* COMPRESSED_MUSIC_ITERATOR_HH */
+
diff --git a/lily/include/compressed-music.hh b/lily/include/compressed-music.hh
new file mode 100644 (file)
index 0000000..f234b74
--- /dev/null
@@ -0,0 +1,29 @@
+/*   
+  compressed-music.hh -- declare Compressed_music
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef COMPRESSED_MUSIC_HH
+#define COMPRESSED_MUSIC_HH
+
+#include "music-wrapper.hh"
+/**
+   Tempo expansion or compression.
+ */
+class Compressed_music : public Music_wrapper
+{
+public:
+  int num_i_;
+  int den_i_;
+
+  Compressed_music (int, int, Music *);
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  VIRTUAL_COPY_CONS (Compressed_music, Music);
+};
+
+#endif /* COMPRESSED_MUSIC_HH */
+
index 1c2a574eff520e44b7c55b6bf049a9c7cdb1c46a..d4add0675542630a9e4c746437a566a5359bb53a 100644 (file)
@@ -19,7 +19,6 @@ class Dynamic_engraver : public Engraver {
   Crescendo * cresc_p_;
   Span_dynamic_req * cresc_req_l_;
   Array<Dynamic_req*> dynamic_req_l_arr_;
-  /* ************** */
 public:
   TRANSLATOR_CLONE(Dynamic_engraver);
   Dynamic_engraver();
index f4cf779c174e6124ec2731782b903c0dd79899d8..5f4b221e1e7faa2cd4c5b040da523d62a5944304 100644 (file)
@@ -12,7 +12,7 @@
 #include "fproto.hh"
 
 void do_one_file (String init_str, String file_str);
-extern Header *header_global_p;
+extern Scope *header_global_p;
 extern Array<String> target_str_global_array;
 extern Array<String> inclusion_global_array;
 extern Link_array<Score> score_global_array;
index b0bff2363d17563c0b140ffcff6976dd29d9a59f..ada7b4ab5c4ca221eca375a5b2867e8ca21b26a0 100644 (file)
@@ -18,7 +18,6 @@ struct Rhythmic_grouping {
     Array<Rhythmic_grouping*> children;
     MInterval *interval_;
     
-    /* *************** */
 
     Array<MInterval> intervals();
     MInterval interval() const;
index 288ca7a671412a898977a961421124c9ffa043a0..e65d065e92498f8049b51f19356ba38e1f556ed5 100644 (file)
 
 #include "string.hh"
 #include "dictionary.hh"
+#include "scope.hh"
 
 
 /** Store bibliographical information.  The information in the \header
    block is read into this struct.  Lily does not process this
    information.  */
-struct Header : Dictionary<String>
-{
-  Header ();
-
-  String tex_string () const;
-  String ps_string () const;
-
-  String lily_id_str_;
-};
+typedef Scope Header;
 
 #endif // HEADER_HH
index 63083109f70151184848858ce8e2b45893785061..cb36305966495f2bda9fcc96c0de0475d9ce0034 100644 (file)
@@ -37,8 +37,6 @@ virtual Class ## _identifier * access_ ## Class ## _identifier () { return 0; }
 
 /**
    A declarable data structure in mudela. 
-
-
    */
 struct Identifier : public Input {
   bool init_b_;
index 25682a4cc45fb4292f17edc31f2fa0a544aca9ab..b7af83ec1620ba502e2518e234f8b0dfa390ec75 100644 (file)
@@ -61,7 +61,8 @@ struct Collision;
 struct Collision_engraver;
 struct Command_req;
 struct Command_script_req;
-struct Complex_music;
+struct Compressed_music;
+struct Compressed_music_iterator;
 struct Cresc_req;
 struct Crescendo ;
 struct Decresc_req;
@@ -82,11 +83,10 @@ struct Music_output;
 struct Musical_pitch;
 struct Music_output_def;
 struct Global_translator;
-struct Group_change_req;
 struct Hara_kiri_line_group_engraver;
 struct Hara_kiri_vertical_group_spanner;
 struct Head_column;
-struct Header;
+
 struct Horizontal_align_item;
 struct Horizontal_group_element;
 struct Horizontal_group_item;
@@ -144,6 +144,7 @@ struct Multi_measure_rest_engraver;
 struct Musical_script_req;
 struct Music_list;
 struct Musical_req;
+struct Musical_span_req;
 struct Music;
 struct Music_sequence;
 struct Music_wrapper_iterator;
@@ -252,4 +253,6 @@ struct Sequential_music;
 struct Request_chord;
 
 typedef Rational Moment;
+typedef Scope Header;
+
 #endif // LILY_PROTO_HH
index 40dc740c1454dcc380468537ed5a4140ce0a537e..7efe60bb7e5c03fa4d4d06e7a2c32455c0a887ba 100644 (file)
@@ -48,7 +48,7 @@ public:
   virtual Atom hairpin (Real width, bool decresc, bool continued) const = 0;
   virtual Lookup* lookup_p (Lookup const&) const = 0;
   virtual Lookup* lookup_p (Symtables const&) const = 0;
-  virtual Paper_outputter* paper_outputter_p (Paper_stream*, Paper_def*, Header*, String) const = 0;
+  virtual Paper_outputter* paper_outputter_p (Paper_stream*, Paper_def*, Scope*, String) const = 0;
   virtual Paper_stream* paper_stream_p () const = 0;
   virtual Atom plet (Real dy, Real dx, Direction dir) const = 0;
   void print () const;
index f8edc37c2520b6fa1b1c731eda0949848f35b905..7907be0ae440c479d588b73aa08716a397c6a800 100644 (file)
@@ -19,7 +19,6 @@
 struct Molecule {
   Pointer_list<Atom*> atoms_;  // change to List<Atom>? 
 
-  /* *************** */
     
   Molecule() { }
   Molecule (Atom const &a);
index f5e04126f86630e76c5f251510c5a7fa6db13f78..e7bda4c554fc5d8f3b82027a91ac21fcdd30b9a3 100644 (file)
@@ -21,25 +21,26 @@ class Music_iterator {
   void push_translator (Translator_group*);
   void pop_translator();
 protected:
+  Music const * music_l_;
   bool first_b_;
   virtual void do_print() const;
     
   virtual Translator_group* get_req_translator_l();
-  Music_iterator* get_iterator_p (Music*) const;
+  Music_iterator* get_iterator_p (Music const*) const;
   void set_translator (Translator_group*);
-  Music_iterator *daddy_iter_l_;
-    
+  virtual void do_process_and_next (Moment until);
+  void inherit_info (Music_iterator const *parent);
 public:
   Translator_group*report_to_l() const;
   DECLARE_MY_RUNTIME_TYPEINFO;
  
-  static Music_iterator* static_get_iterator_p (Music*,Translator_group*);
+  static Music_iterator* static_get_iterator_p (Music const*,Translator_group*);
   Music_iterator();
     
-  virtual void process_and_next (Moment until);
   virtual Moment next_moment() const;
   virtual bool ok() const;
   virtual ~Music_iterator();
+  void process_and_next (Moment until);
 
   /**
     Construct sub-iterators, and set the translator to 
index 05822a649fceb897f8c33cc0251879077157d545..6cdda3dc5b816b04cd33a133c100f48d19f0bcd7 100644 (file)
@@ -29,17 +29,17 @@ public:
  */
 class Music_sequence : public Music
 {
-    
 public:
   int multi_level_i_;
   Music_list * music_p_list_p_;
-  
+
   Music_sequence (Music_sequence const&);
   Music_sequence (Music_list *l_p);
   DECLARE_MY_RUNTIME_TYPEINFO;
   VIRTUAL_COPY_CONS(Music_sequence,Music);
 
   virtual void transpose (Musical_pitch );
+  virtual void compress (Moment);
   void add_music (Music *music_p);
 protected:
   virtual void do_print() const;
@@ -51,13 +51,12 @@ protected:
 class Simultaneous_music : public Music_sequence
 {
 public:
-  Simultaneous_music(Music_list *);
   DECLARE_MY_RUNTIME_TYPEINFO;
   VIRTUAL_COPY_CONS(Simultaneous_music,Music);
   
+  Simultaneous_music(Music_list *);
   virtual Musical_pitch to_relative_octave (Musical_pitch);
-  virtual void translate (Moment dt);
-  virtual MInterval time_int() const;
+  virtual Moment duration () const;
 };
 
 /**
@@ -67,24 +66,22 @@ public:
 class Request_chord : public Simultaneous_music
 {
 public:
+  VIRTUAL_COPY_CONS(Request_chord, Music);
   DECLARE_MY_RUNTIME_TYPEINFO;
   virtual Musical_pitch to_relative_octave (Musical_pitch);
   Request_chord();
-  VIRTUAL_COPY_CONS(Request_chord, Music);
 };
 /**
   Sequential_music is a list of music-elements which are placed behind each other.
  */
 class Sequential_music : public Music_sequence
 {
-    
 public:
-  Moment offset_mom_;
-  virtual Musical_pitch to_relative_octave (Musical_pitch);
-  Sequential_music(Music_list*);
   DECLARE_MY_RUNTIME_TYPEINFO;
   VIRTUAL_COPY_CONS(Sequential_music, Music);
-  virtual void translate (Moment dt);
-  virtual MInterval time_int() const;
+
+  virtual Musical_pitch to_relative_octave (Musical_pitch);
+  Sequential_music(Music_list*);
+  virtual Moment duration () const;
 };
 #endif // Music_sequence_HH
index 04a16e5d8d998466b676b81f60ba74f1bec1b5c8..cf17d6a6415ccc63c30078f104f69e951087adfc 100644 (file)
@@ -19,7 +19,7 @@
 class Music_output 
 {
 public:
-  Header * header_l_;
+  Scope * header_l_;
   String default_out_str_;
   String origin_str_;
   int errorlevel_i_;
index 4437d461ed209f3696f3aeef55297db5687ce01a..114704e1523a08c071231d81e43821f6ba6a5c54 100644 (file)
 class Music_wrapper_iterator : public Music_iterator
 {
   Music_iterator *child_iter_p_;
-  Music_wrapper *music_l_;
+  Music_wrapper *music_wrapper_l();
 public:
-  Music_wrapper_iterator (Music_wrapper*);
+  Music_wrapper_iterator ();
   ~Music_wrapper_iterator ();
   virtual void do_print () const;
   virtual void construct_children  () ;
-  virtual void process_and_next (Moment) ;
+  virtual void do_process_and_next (Moment) ;
   virtual Moment next_moment () const;
   virtual bool ok () const;
   DECLARE_MY_RUNTIME_TYPEINFO;
index cdecc0b5bafdaad4ddb24354c6da80ef46a0b6fe..7c60c91dda101833123311d7226f05b6c2282c4d 100644 (file)
@@ -23,11 +23,12 @@ public:
   DECLARE_MY_RUNTIME_TYPEINFO;
   VIRTUAL_COPY_CONS (Music_wrapper, Music);
   Music_wrapper (Music_wrapper const&);
-  virtual MInterval time_int () const;
+  virtual Moment  duration () const;
   virtual ~Music_wrapper ();
 };
 
 
 
+
 #endif /* MUSIC_WRAPPER_HH */
 
index 9a7b6f2d97cff1e1e0fa0189e69dece543a7ad74..b05bc0db19f4e2538de02f691ef5f33c80321bd6 100644 (file)
@@ -42,11 +42,12 @@ public:
   String translator_id_str_;    
 
   virtual Musical_pitch to_relative_octave (Musical_pitch);
-  virtual MInterval time_int() const;
+  virtual Moment  duration () const;
+
   virtual ~Music(){}
   void print() const;
   virtual void transpose (Musical_pitch );
-  virtual void translate (Moment dt);
+  virtual void compress (Moment);
   VIRTUAL_COPY_CONS(Music,Music);
   DECLARE_MY_RUNTIME_TYPEINFO;
   Music();
index d7bce858fa661e0984ee2f96b69a89e2e5b09716..70e6467542857be8aff349dfcb91e1a846a92c5c 100644 (file)
@@ -36,7 +36,8 @@ public:
   DEFAULTACCESSOR(Skip_req)
   DEFAULTACCESSOR(Dynamic_req)
   DEFAULTACCESSOR(Absolute_dynamic_req )
-  DEFAULTACCESSOR(Tie_req )
+  DEFAULTACCESSOR(Tie_req)
+  DEFAULTACCESSOR(Musical_span_req)
   DEFAULTACCESSOR(Plet_req)
   DEFAULTACCESSOR(Span_dynamic_req )
   DEFAULTACCESSOR(Abbreviation_req)
@@ -47,15 +48,14 @@ public:
 
 
 /** a request with a duration.
-  This request is used only a base class.
+  This request is used only used as a base class.
  */
 class Rhythmic_req  : public virtual Musical_req  {
 public:
   Duration duration_;
     
-  /* *************** */
-  void set_duration (Duration);
   bool do_equal_b (Request*) const;
+  void compress (Moment);
   virtual Moment duration() const;
   Rhythmic_req();
   static int compare (Rhythmic_req const&,Rhythmic_req const&);
@@ -71,7 +71,6 @@ struct Spacing_req :virtual Request {
   Moment next;
   Real distance;
   Real strength;
-  /* *************** */
   Spacing_req();
   REQUESTMETHODS(Spacing_req);
 };
@@ -95,7 +94,6 @@ public:
   /// the characteristics of the text
   Text_def *tdef_p_;
 
-  /* *************** */
   Text_req (int d, Text_def*);
   ~Text_req();
   Text_req (Text_req const&);
@@ -155,27 +153,16 @@ public:
 
 };
 
-/**
-  Requests to start or stop something.
- This type of request typically results in the creation of a #Spanner#
-*/
-class Span_req  : public virtual Musical_req  {
+class Musical_span_req : public Span_req, public virtual Musical_req
+{
 public:
-  /// should the spanner start or stop, or is it unwanted?
-  enum Spantype {
-    NOSPAN, START, STOP
-  } spantype;
-  bool do_equal_b (Request*) const;
-  REQUESTMETHODS(Span_req);
-
-  Span_req();
+  REQUESTMETHODS(Musical_span_req);
   
 };
 
 /** Start / stop a beam at this note */
-class Beam_req  : public Span_req  {
+class Beam_req  : public Musical_span_req  {
 public:
-  /* *************** */
   REQUESTMETHODS(Beam_req);
 
   Beam_req();
@@ -184,7 +171,7 @@ public:
 /** 
  Start / stop an abbreviation beam at this note. 
  */
-class Abbreviation_beam_req : public Span_req  {
+class Abbreviation_beam_req : public Musical_span_req  {
 public:
   REQUESTMETHODS (Abbreviation_beam_req);
 
@@ -202,14 +189,14 @@ public:
 };
 
 /// a slur
-class Slur_req  : public Span_req  {
+class Slur_req  : public Musical_span_req  {
 public:
   REQUESTMETHODS(Slur_req);
 
 };
 
 /// a plet (bracket with) number
-class Plet_req : public Span_req  {
+class Plet_req : public Musical_span_req  {
 public:
   int plet_i_;
 
@@ -247,7 +234,7 @@ public:
   REQUESTMETHODS(Absolute_dynamic_req);
 };
 
-class Span_dynamic_req  : public Dynamic_req, public Span_req  {
+class Span_dynamic_req  : public Dynamic_req, public Musical_span_req  {
 public:
   virtual bool do_equal_b (Request*) const;
   /// Grow or shrink the volume: 1=cresc, -1 = decresc 
index 5b5d17c008f2f5ff4dcfa579ea76576fbd0e9828..3030a09eb45871a36e5981af2fdddd8f161697a8 100644 (file)
@@ -43,7 +43,6 @@ public:
   Keyword_table * keytable_p_;
   int errorlevel_i_;
 
-  /* *************** */
 
   void start_main_input ();
   void set_notename_table(Notename_table*tab_p);
index e68324ddcd56f82699e1b488a69c3ff53fbaffa9..8024bb552ee63669fef34434cc8d70a20acec684 100644 (file)
@@ -40,7 +40,7 @@ public:
   int default_abbrev_i_;
   Duration default_duration_;
   Plet plet_;
-  Header *default_header_p_;
+  Scope *default_header_p_;
     
   bool first_b_;
 
index 674139c14973d805a98f2651c85309938798d174..a6061778a9a27604d5544614a9277c04128196fa 100644 (file)
@@ -55,7 +55,6 @@ public:
   bool error_mark_b_;
   bool used_b_ ;               // manual override.. 
     
-  /* *************** */
 
   /// which  one (left =0)
   int rank_i() const;
index ac0703dc293e4c95ac14b816f8b9391920ec9fd9..ea429a36a4aba307108019ce746ebab0d9df14a3 100644 (file)
 
 class Property_iterator : public Music_iterator
 {
-  Translation_property *property_l_;
+  Translation_property *property_l() const;
   
 public:
   DECLARE_MY_RUNTIME_TYPEINFO;
-  Property_iterator (Translation_property* prop_l);
 protected:
-  virtual void process_and_next (Moment);
+  virtual void do_process_and_next (Moment);
 };
 
 #endif // PROPERTY_ITERATOR_HH
index 84f4abdcee602789ad3daf0c8a98313d5444aed1..2eb9ed025a934d6b8a8e58ffcac6ceaf3a6fad84 100644 (file)
@@ -26,7 +26,7 @@ public:
   virtual Atom hairpin (Real width, bool decresc, bool continued) const;
   virtual Lookup* lookup_p (Lookup const&) const;
   virtual Lookup* lookup_p (Symtables const&) const;
-  virtual Paper_outputter* paper_outputter_p (Paper_stream*, Paper_def*, Header*, String) const;
+  virtual Paper_outputter* paper_outputter_p (Paper_stream*, Paper_def*, Scope*, String) const;
   virtual Paper_stream* paper_stream_p () const;
   virtual Atom plet (Real dy , Real dx, Direction dir) const;
   virtual Atom ps_beam (Real slope, Real width, Real thick) const;
index 15640ccd74735c26356e3db8bf60c3a7da4808bb..6d5cd95baf613353f5cfc3af46e926d723a8eb68 100644 (file)
 
 #include "music-iterator.hh"
 
+/**
+   Walk through a Request_chord
+ */
 class Request_chord_iterator : public Music_iterator {
-  const Request_chord * elt_l_;
+  Request_chord * elt_l () const;
+  /**
+     cache elt_l ()->duration ().
+   */
   Moment elt_duration_;
   bool last_b_;
+
 public:
-  Request_chord_iterator (Request_chord*);
+  Request_chord_iterator ();
   DECLARE_MY_RUNTIME_TYPEINFO;
 
 protected:
-  virtual void process_and_next (Moment);
+  virtual void do_process_and_next (Moment);
   virtual Moment next_moment() const;
   virtual void construct_children();
   virtual bool ok() const;
index eab7b2d8b07de1fb3328bb37a477f3cc5ad0b7ec..c45d5905e13b2f4b6f6db4a3eb4992eb300a6512 100644 (file)
@@ -29,16 +29,11 @@ class Request : public Music {
 
 public:
     
-  /* *************** */
-
   virtual ~Request(){}
 
   DECLARE_MY_RUNTIME_TYPEINFO;
   VIRTUAL_COPY_CONS(Request,Music);
     
-  virtual MInterval time_int() const;
-  virtual Moment duration() const { return 0; }
-
   /*  accessors for children
       maybe checkout RTTI
   */
@@ -82,5 +77,22 @@ public:
   Script_req (Script_req const&);
 };
 
-    
+
+/**
+  Requests to start or stop something.
+ This type of request typically results in the creation of a #Spanner#
+*/
+class Span_req  : public virtual Request  {
+public:
+  /// should the spanner start or stop, or is it unwanted?
+  enum Spantype {
+    NOSPAN, START, STOP
+  } spantype;
+  bool do_equal_b (Request*) const;
+  REQUESTMETHODS(Span_req);
+
+  Span_req();
+};
+
+
 #endif
index 6f0d7a6cdfffcf0543f2612024963032e7fd7eaf..dfe944c5a589ccd7588959ddca8ff9ae24a29e37 100644 (file)
@@ -40,7 +40,6 @@ public:
   /// length of notes/rests in this column
   Array<Moment> durations;
     
-  /* *************** */
 
   Moment when() {  return when_; }
   Score_column (Moment when);       
index 3e31b87057f991a319f6cd3e636e72144deae3dd..95d69a0d484a2929bdbb6433e15a95a83ad44b92 100644 (file)
@@ -22,7 +22,6 @@ struct Score_element_info {
     Request*req_l_;
     Array<Engraver*> origin_grav_l_arr_;
 
-    /* *** */
     Score_element_info (Score_element*, Request*);
     Score_element_info();
 };
index 7817d7f891a643597d5522e0d7c789b81de02106..e86b629a28ec5c02946e2d2b7337c7008a1d2599 100644 (file)
@@ -24,7 +24,7 @@ public:
   /// paper_, staffs_ and commands_ form the problem definition.
   Link_array<Music_output_def> def_p_arr_;
   Music * music_p_;
-  Header * header_p_;
+  Scope * header_p_;
 
   int errorlevel_i_;
     
index 6bef757c911b755851ee34beff3a27925f5576f3..a54b211849cf4e9b99fa26da9e90213d4c6acf0a 100644 (file)
@@ -78,7 +78,6 @@ public:
   /// direction of the beam
   Direction beam_dir_;
     
-  /* *************** */
   Stem ();
     
   /// ensure that this Stem also encompasses the Notehead #n#
index 24aadf16449e89c7d7df9315357a87ad2f982741..cdb9839fcc5f3c685b0b4648be8a2e42e0892816 100644 (file)
@@ -28,7 +28,7 @@ public:
   virtual Atom hairpin (Real width, bool decresc, bool continued) const;
   virtual Lookup* lookup_p (Lookup const&) const;
   virtual Lookup* lookup_p (Symtables const&) const;
-  virtual Paper_outputter* paper_outputter_p (Paper_stream*, Paper_def*, Header*, String) const;
+  virtual Paper_outputter* paper_outputter_p (Paper_stream*, Paper_def*, Scope*, String) const;
   virtual Paper_stream* paper_stream_p () const;
   virtual Atom plet (Real dy , Real dx, Direction dir) const;
   virtual String print_dimen (Real) const;
index 8c6ba84f69348c13c4457254736ff12a3f3c4d0b..b0ffa91f33d701ab10438bd12d7ff931e88d71c1 100644 (file)
@@ -21,7 +21,6 @@ public:
     /// do I have width?
     bool fat_b_;
     
-    /* ***************/
 
     Text_item (General_script_def* ,Direction dir=CENTER);
     virtual ~Text_item ();
index f92b48ba7921ead72be6a5ffd99cd4f26b85f3a6..5ac4e0330e48eece7c951f75761e2dcdf8f034b6 100644 (file)
@@ -33,7 +33,6 @@ struct Time_description {
   /// idem
   int bars_i_;
 
-  /* *************** */
   void set_cadenza (bool);
   Moment when_mom () const { return when_; }
   void OK() const;
index d029496f417c6f265f943bf1d5b265142adf9a62..97e905254f668724f732fed649bfb2bc643bf0ec 100644 (file)
 #include "music-iterator.hh"
 #include "pcursor.hh"
 
-class Sequential_music_iterator :  private PCursor<Music*>, public Music_iterator
+class Sequential_music_iterator :  public Music_iterator
 {
   Moment here_mom_;
-  const Sequential_music * sequential_music_C_;
+  PCursor<Music*> *cursor_p_;
   Music_iterator * iter_p_;
   void start_next_element();
   void leave_element();
   void set_Sequential_music_translator();
-    
+protected:
+  Sequential_music * sequential_music_l() const;
 public:
-  Sequential_music_iterator (Sequential_music const*);
+  Sequential_music_iterator ();
   DECLARE_MY_RUNTIME_TYPEINFO;
 protected:
   virtual void do_print() const;
   virtual void construct_children();
   ~Sequential_music_iterator();    
-  virtual void process_and_next (Moment);
+  virtual void do_process_and_next (Moment);
   virtual Moment next_moment() const;
   virtual bool ok() const;
 };
index 81622368a49782bf5e63d041d8da7058f4dd266e..b19215f51200ada13487995a5f22703123bdbd2d 100644 (file)
 #include "translation-property.hh"
 #include "change-iterator.hh"
 #include "change-translator.hh"
-
 #include "music-wrapper.hh"
 #include "music-wrapper-iterator.hh"
+#include "compressed-music-iterator.hh"
+#include "compressed-music.hh"
+
 
 
 IMPLEMENT_IS_TYPE_B(Music_iterator);
@@ -111,12 +113,18 @@ Music_iterator::next_moment() const
   return 0;
 }
 
+
 void
-Music_iterator::process_and_next (Moment)
+Music_iterator::process_and_next (Moment m)
 {
-  first_b_ = false;
+  do_process_and_next (m);
 }
 
+void
+Music_iterator::do_process_and_next (Moment)
+{
+  first_b_ = false;
+}
 
 bool
 Music_iterator::ok() const
@@ -125,49 +133,55 @@ Music_iterator::ok() const
 }
 
 Music_iterator*
-Music_iterator::static_get_iterator_p (Music *m,
-                                      Translator_group*report_l)
+Music_iterator::static_get_iterator_p (Music const *m, Translator_group *report_l)
 {
   Music_iterator * p =0;
   if (m->is_type_b (Request_chord::static_name()))
-    p = new Request_chord_iterator ((Request_chord*) m);
+    p = new Request_chord_iterator;
   else if (m->is_type_b (Simultaneous_music::static_name())) 
-    p =  new Simultaneous_music_iterator ((Simultaneous_music*) m);
+    p =  new Simultaneous_music_iterator;
   else if (m->is_type_b (Sequential_music::static_name())) 
-    p =  new Sequential_music_iterator ((Sequential_music*) m);
+    p =  new Sequential_music_iterator;
   else if (m->is_type_b (Translation_property::static_name ()))
-    p = new Property_iterator((Translation_property *) m);
+    p = new Property_iterator;
   else if (m->is_type_b (Change_translator::static_name ()))
-    p = new Change_iterator((Change_translator*) m);
+    p = new Change_iterator;
+  else if (m->is_type_b (Compressed_music::static_name ()))
+    p = new Compressed_music_iterator;
   else if (m->is_type_b (Music_wrapper::static_name ()))
-    p = new Music_wrapper_iterator ((Music_wrapper *)m);
-          
-  
-  if (m -> translator_type_str_.length_i ())
+    p = new Music_wrapper_iterator;
+
+  p->music_l_ = m;
+  if (m->translator_type_str_.length_i ())
     {
       Translator_group* a =report_l->
-       find_create_translator_l (m-> translator_type_str_, m->translator_id_str_);
+       find_create_translator_l (m->translator_type_str_, m->translator_id_str_);
       p->set_translator (a);
     }
 
   if (! p->report_to_l())
     p ->set_translator (report_l);
+
   
   return p;
 }
 
+void
+Music_iterator::inherit_info(Music_iterator const *parent)
+{
+}
+
 Music_iterator*
-Music_iterator::get_iterator_p (Music*m) const
+Music_iterator::get_iterator_p (Music const*m) const
 {
-  Music_iterator*p = static_get_iterator_p (m,report_to_l());
-  p->daddy_iter_l_ = (Music_iterator*)this;
+  Music_iterator*p = static_get_iterator_p (m, report_to_l());
+  p->inherit_info (this);
   p->construct_children();
   return p;
 }
 
 Music_iterator::Music_iterator()
 {
-  daddy_iter_l_ =0;
   first_b_ = true;
 }
 
index b9b72ded25d2237249ec15d4e6963c849a3ba8b9..8f2944669908e1bcebf65353c14c6c9e4c9b1b71 100644 (file)
 IMPLEMENT_IS_TYPE_B1(Sequential_music,Music_sequence);
 IMPLEMENT_IS_TYPE_B1(Simultaneous_music,Music_sequence);
 
-MInterval
-Simultaneous_music::time_int() const
+Moment
+Simultaneous_music::duration () const
 {
-  MInterval m;
+  Moment dur = 0;
   for (iter (music_p_list_p_->top(), i); i.ok (); i++)
-    m.unite (i->time_int());
+    dur = dur >? i->duration ();
 
-  return m;
+  return dur;
 }
 
 void
-Simultaneous_music::translate (Moment m)
+Music_sequence::compress (Moment m)
 {
-  for (iter (music_p_list_p_->top(), i); i.ok (); i++)
-    i->translate (m); 
+  for (PCursor<Music*>  i(music_p_list_p_->top()); i.ok (); i++)
+    i->compress (m);
 }
 
 Simultaneous_music::Simultaneous_music(Music_list *p)
@@ -43,24 +43,17 @@ Simultaneous_music::Simultaneous_music(Music_list *p)
 Sequential_music::Sequential_music(Music_list *p)
   : Music_sequence (p)
 {
-  offset_mom_ =0;
 }
 
-MInterval
-Sequential_music::time_int() const
+Moment
+Sequential_music::duration () const
 {
   Moment last=0;
   for (iter (music_p_list_p_->top(), i); i.ok (); i++) 
     {
-      MInterval interval = i->time_int();
-       
-      /*
-       c4 <> c4
-      */
-      if (!interval.empty_b())
-       last += interval.length();
+      last += i->duration ();
     }
-  return  offset_mom_ + MInterval (0,last);
+  return  last;
 }
 
 Musical_pitch
@@ -75,14 +68,6 @@ Simultaneous_music::to_relative_octave (Musical_pitch p)
   return music_p_list_p_->do_relative_octave (p, true);
 }
 
-void
-Sequential_music::translate (Moment dt)
-{
-  offset_mom_ += dt;
-}
-
-
-
 
 Musical_pitch 
 Music_list::do_relative_octave (Musical_pitch last, bool ret_first)
index 13b2a90c31dacebe3749b245ecba110ff80dbd9b..4e0ca78ff7977de010960d0b63a47fd18eae9a15 100644 (file)
@@ -1,5 +1,5 @@
 /*   
-  music-wrapper-iterator.cc --  implement 
+  music-wrapper-iterator.cc --  implement Music_wrapper_iterator
   
   source file of the GNU LilyPond music typesetter
   
 #include "music-wrapper-iterator.hh"
 #include "music-wrapper.hh"
 
-Music_wrapper_iterator::Music_wrapper_iterator (Music_wrapper *r)
+Music_wrapper_iterator::Music_wrapper_iterator ()
 {
   child_iter_p_ =0;
-  music_l_ = r;
 }
 
 IMPLEMENT_IS_TYPE_B1(Music_wrapper_iterator, Music_iterator);
@@ -28,7 +27,7 @@ Music_wrapper_iterator::do_print () const
 void
 Music_wrapper_iterator::construct_children ()
 {
-  child_iter_p_ = get_iterator_p (music_l_->element_p_);  
+  child_iter_p_ = get_iterator_p (music_wrapper_l ()->element_p_);  
 }
 
 Music_wrapper_iterator::~Music_wrapper_iterator ()
@@ -36,7 +35,11 @@ Music_wrapper_iterator::~Music_wrapper_iterator ()
   delete child_iter_p_;
 }
 
-
+Music_wrapper*
+Music_wrapper_iterator::music_wrapper_l ()
+{
+  return (Music_wrapper*) music_l_;
+}
 bool
 Music_wrapper_iterator::ok () const
 {
@@ -44,10 +47,10 @@ Music_wrapper_iterator::ok () const
 }
 
 void
-Music_wrapper_iterator::process_and_next (Moment m)
+Music_wrapper_iterator::do_process_and_next (Moment m)
 {
   child_iter_p_->process_and_next (m);
-  Music_iterator::process_and_next (m);
+  Music_iterator::do_process_and_next (m);
 }
 
 Moment
index b6f6618e7998b91254187061385f6a1e91089188..1785b386d4d688d0520ef34c8c62db3b2205364b 100644 (file)
@@ -44,8 +44,8 @@ Music_wrapper::Music_wrapper(Music*p)
 
 IMPLEMENT_IS_TYPE_B1 (Music_wrapper, Music);
 
-MInterval
-Music_wrapper::time_int () const
+Moment
+Music_wrapper::duration () const
 {
-  return element_p_->time_int ();
+  return element_p_->duration ();
 }
index 10ee1a3b3f23e2659059305dfb0c870ef0227d80..2127783d7bc1a26b0ea7f39eb77fc1d38a06502e 100644 (file)
 #include "debug.hh"
 #include "musical-pitch.hh"
 
-MInterval
-Music::time_int() const
+Moment
+Music::duration () const
 {
-  return MInterval (0,0);
+  return 0;
 }
 
 void
@@ -38,11 +38,6 @@ Music::transpose (Musical_pitch )
   
 }
 
-void
-Music::translate (Moment)
-{
-}
-
 void
 Music::do_print() const
 {
@@ -64,4 +59,7 @@ Music::to_relative_octave (Musical_pitch m)
   return m;
 }
 
-     
+void    
+Music::compress (Moment)
+{
+}
index b1d5120fe8f1d61395bec47b111bcfc5ec9f86ec..3ee6004add9f0e2d330c6cf08213de3d38037da7 100644 (file)
@@ -22,12 +22,17 @@ void
 Tie_req::do_print () const{}
 
 
-/* *************** */
 
+IMPLEMENT_IS_TYPE_B1(Span_req,Request);
 
+IMPLEMENT_IS_TYPE_B2(Musical_span_req, Span_req, Musical_span_req);
 
-
-IMPLEMENT_IS_TYPE_B1 (Span_req,Musical_req);
+void
+Musical_span_req::do_print () const
+{
+  Span_req::do_print ();
+}
+            
 
 void
 Span_req::do_print () const
@@ -77,7 +82,6 @@ Blank_req::do_print () const
 {
   Spacing_req::do_print ();
 }
-/* *************** */
 
 Melodic_req::Melodic_req ()
 {
@@ -116,7 +120,6 @@ Melodic_req::do_print () const
 pitch_.print ();
 }
 
-/* *************** */
 int
 Rhythmic_req::compare (Rhythmic_req const &r1, Rhythmic_req const &r2)
 {
@@ -131,11 +134,6 @@ Rhythmic_req::do_equal_b (Request*r) const
   return !compare (*this, *rh);
 }
 
-void
-Rhythmic_req::set_duration (Duration d)
-{
-  duration_ = d;
-}
 
 Rhythmic_req::Rhythmic_req ()
 {
@@ -158,7 +156,13 @@ Rhythmic_req::duration () const
 {
   return duration_.length ();
 }
-/* *************** */
+
+void
+Rhythmic_req::compress (Moment m)
+{
+  duration_.compress (m);
+}
+  
 
 
 
@@ -170,7 +174,6 @@ Lyric_req::do_print () const
   Rhythmic_req::do_print ();
 }
 
-/* *************** */
 
 bool
 Note_req::do_equal_b (Request*r) const
@@ -198,7 +201,6 @@ Note_req::do_print () const
   Rhythmic_req::do_print ();
 #endif
 }
-/* *************** */
 
 IMPLEMENT_IS_TYPE_B1 (Rest_req, Rhythmic_req);
 
@@ -208,7 +210,6 @@ Rest_req::do_print () const
       Rhythmic_req::do_print ();
 }
 
-/* *************** */
 
 
 
@@ -221,7 +222,6 @@ Multi_measure_rest_req::do_print () const
 }
 
 
-/* *************** */
 
 IMPLEMENT_IS_TYPE_B1 (Beam_req,Span_req);
 
@@ -234,7 +234,6 @@ Beam_req::do_print () const
 {
 }
 
-/* *************** */
 
 IMPLEMENT_IS_TYPE_B1 (Abbreviation_beam_req, Span_req);
 
@@ -266,7 +265,6 @@ Plet_req::do_print () const
 {
 }
 
-/* *************** */
 
 bool
 Span_req:: do_equal_b (Request*r) const
@@ -280,7 +278,6 @@ Span_req::Span_req ()
   spantype = NOSPAN;
 }
 
-/* *************** */
 Script_req::Script_req (Script_req const&s)
 {
   dir_ = s.dir_;
@@ -332,7 +329,6 @@ Script_req::~Script_req ()
 {
   delete scriptdef_p_;
 }
-/* *************** */
 
 
 Text_req::~Text_req ()
@@ -365,7 +361,6 @@ Text_req::do_print () const
 #endif
 }
 
-/* *************** */
 
 
 IMPLEMENT_IS_TYPE_B1 (Skip_req,Musical_req);
index ee308432d9584de737887b1ee44b4712e097e3e5..82948a3067447e6fe31c043f95d8257895575015 100644 (file)
@@ -35,12 +35,13 @@ static Keyword_ent the_key_tab[]={
   {"grouping", GROUPING},
   {"header", HEADER},
   {"in", IN_T},
-  {"lyric", LYRIC},
+  {"lyrics", LYRICS},
   {"key", KEY},
   {"keysignature", KEYSIGNATURE},
   {"mark", MARK},
   {"musicalpitch", MUSICAL_PITCH},
   {"time", TIME_T},
+  {"times", TIMES},
   {"midi", MIDI},
   {"mm", MM_T},
   {"name", NAME},
index ea2cbe6b5ab32078da1b07a22c56f10744bdcbd2..9f7e8c7fb3ac77a384229cf8062acfac19c35f00 100644 (file)
@@ -14,7 +14,7 @@
 #include "musical-request.hh"
 #include "command-request.hh"
 #include "parser.hh"
-#include "header.hh"
+#include "scope.hh"
 #include "file-results.hh"
 #include "midi-def.hh"
 #include "paper-def.hh"
@@ -171,7 +171,7 @@ My_lily_parser::get_note_element (Note_req *rq, Duration * duration_p)
       assert (!duration_p->plet_b ());
       duration_p->set_plet (1, 2);
     }
-  rq->set_duration (*duration_p);
+  rq->duration_ = *duration_p;
   rq->set_spot (here_input ());
   delete duration_p ;
   return v;
@@ -265,7 +265,7 @@ My_lily_parser::get_parens_request (int t)
   for (int i = 0; i < reqs.size (); i++)
     if (reqs[i]->access_Musical_req ()->access_Span_dynamic_req ())
       {
-       Span_dynamic_req* s_l= (reqs[i]->access_Musical_req ()->access_Span_dynamic_req ()) ;
+       Span_dynamic_req* s_l= reqs[i]->access_Musical_req ()->access_Span_dynamic_req ();
        s_l->dynamic_dir_ = (t == '<') ? UP:DOWN;
       }
 
index 25eaac2aa4493a7009fd83715399beb2881aaa37..2dbc75925bfbb21147fd1f53691ce34208159276 100644 (file)
@@ -17,7 +17,7 @@
 #include "p-col.hh"
 #include "p-score.hh"
 #include "p-col.hh"
-#include "header.hh"
+#include "scope.hh"
 #include "word-wrap.hh"
 #include "gourlay-breaking.hh"
 #include "paper-stream.hh"
@@ -194,6 +194,8 @@ Paper_score::calc_breaking ()
   return sol;
 }
 
+
+
 void
 Paper_score::process ()
 {
@@ -233,13 +235,14 @@ Paper_score::process ()
       line_l->output_all ();
        *mlog << ']' << flush;
       remove_line (line_l);
-       
     }
-
+  
   // huh?
   delete outputter_l_;
   delete paper_stream_p;
   outputter_l_ = 0;
+
+  *mlog << '\n' << flush;
 }
 
 void
index bc323e061f969c8c011cd5c89b25975d34924f52..428fff3c373f0611941608fd4249e2dd61eb881e 100644 (file)
@@ -36,7 +36,6 @@
 #include "translator-group.hh"
 #include "score.hh"
 #include "music-list.hh"
-#include "header.hh"
 #include "duration-convert.hh"
 #include "change-translator.hh"
 #include "file-results.hh"
 #include "scope.hh"
 #include "relative-music.hh"
 #include "transposed-music.hh"
+#include "compressed-music.hh"
 
 // mmm
-Mudela_version oldest_version ("1.0.6");
-Mudela_version version ("1.0.6");
+Mudela_version oldest_version ("1.0.7");
+Mudela_version version ("1.0.8");
 
 
 // needed for bison.simple's malloc() and free()
@@ -63,6 +63,24 @@ int guess_plet_a[GUESS_PLET] =
   4
 };
 
+struct Assignment {
+       String *name_p_;
+       Identifier *id_p_;
+       ~Assignment () {
+               delete name_p_;
+               delete id_p_;
+       }
+       Assignment () {
+               name_p_ = 0;
+               id_p_ =0;
+       }
+       Assignment (Assignment const&s)
+       {
+               name_p_ = new String (*s.name_p_);
+               id_p_ = s.id_p_->clone ();
+       }
+};
+
 Paper_def* current_paper = 0;
 
 #ifndef NDEBUG
@@ -95,7 +113,7 @@ Paper_def* current_paper = 0;
     Music *music;
     Music_list *music_list;
     Score *score;
-    Header *header;
+    Scope *scope;
     Interval *interval;
     Musical_req* musreq;
     Music_output_def * outputdef;
@@ -156,7 +174,7 @@ yylex (YYSTYPE *s,  void * v_l)
 %token IN_T
 %token KEY
 %token KEYSIGNATURE
-%token LYRIC
+%token LYRICS
 %token MAEBTELP
 %token MARK
 %token MEASURES
@@ -187,6 +205,7 @@ yylex (YYSTYPE *s,  void * v_l)
 %token TELP
 %token TEMPO
 %token TIME_T
+%token TIMES
 %token TRANSLATOR
 %token TRANSPOSE
 %token TYPE
@@ -220,17 +239,17 @@ yylex (YYSTYPE *s,  void * v_l)
 
 
 %type <outputdef> output_def
-%type <header>         mudela_header mudela_header_body
+%type <scope>  mudela_header mudela_header_body
 %type <box>    box
 %type <i>      open_request_parens close_request_parens
 %type <i>      open_abbrev_parens
 %type <i>      open_plet_parens close_plet_parens
 %type <i>      sub_quotes sup_quotes
-%type <music>  simple_element  request_chord command_element
+%type <music>  simple_element  request_chord command_element Simple_music  Composite_music
 %type <i>      abbrev_type
 %type <i>      int unsigned
 %type <i>      script_dir
-%type <id>     identifier_init simple_identifier_init
+%type <id>     identifier_init simple_identifier_init block_identifier
 %type <duration> steno_duration notemode_duration
 %type <duration> entered_notemode_duration explicit_duration
 %type <interval>       dinterval
@@ -248,16 +267,13 @@ yylex (YYSTYPE *s,  void * v_l)
 %type <music>  property_def translator_change
 %type <music_list> Music_list
 %type <paper>  paper_block paper_def_body
-%type <real>   dim real
-%type <real>   real_mult_expression real_primary
-%type <real>   unit
+%type <real>   real_expression real dimension
 %type <request> abbrev_command_req
 %type <request>        post_request structured_post_request
 %type <pair>   plet_fraction
 %type <request> command_req verbose_command_req
 %type <request>        script_req  dynamic_req
 %type <string> string
-%type <string> string_primary
 %type <score>  score_block score_body
 %type <intarr> shape_array
 %type <script> script_definition script_body mudela_script gen_script_def
@@ -268,14 +284,18 @@ yylex (YYSTYPE *s,  void * v_l)
 %type <trans>  translator_spec translator_spec_body
 %type <tempo>  tempo_request
 %type <notenametab> notenames_body notenames_block
-%expect 1
+%expect 3
+
 
+%left '-' '+'
+%left '*' '/'
+%left UNARY_MINUS
 
 %%
 
 mudela:        /* empty */
        | mudela toplevel_expression {}
-       | mudela add_declaration { }
+       | mudela assignment { }
        | mudela error
        | mudela check_version { }
        ;
@@ -340,19 +360,19 @@ notenames_body:
        ;
 
 mudela_header_body:
-               {
-               $$ = new Header;
+       {
+               $$ = new Scope;
+               THIS->lexer_p_-> scope_l_arr_.push ($$);
        }
-       | mudela_header_body STRING '=' string ';' {
-               (*$$)[*$2] = *$4;
-               delete $2;
-               delete $4;
+       | mudela_header_body assignment ';' { 
+
        }
        ;
 
 mudela_header:
        HEADER '{' mudela_header_body '}'       {
                $$ = $3;
+               THIS->lexer_p_-> scope_l_arr_.pop ();           
        }
        ;
 
@@ -360,11 +380,11 @@ mudela_header:
 /*
        DECLARATIONS
 */
-add_declaration:
+assignment:
        STRING {
                THIS->remember_spot ();
        }
-       /* cont */ '=' identifier_init optional_semicolon {
+       /* cont */ '=' identifier_init  {
            THIS->lexer_p_->set_identifier (*$1, $4);
            $4->init_b_ = THIS->init_parse_b_;
            $4->set_spot (THIS->pop_spot ());
@@ -374,7 +394,12 @@ add_declaration:
 
 simple_identifier_init: identifier_init
        ;
+
 identifier_init:
+       block_identifier
+       ;
+
+block_identifier:
        score_block {
                $$ = new Score_identifier ($1, SCORE_IDENTIFIER);
 
@@ -389,17 +414,16 @@ identifier_init:
                $$ = new Midi_def_identifier ($1, MIDI_IDENTIFIER);
 
        }
-       | script_definition {
-               $$ = new General_script_def_identifier ($1, SCRIPT_IDENTIFIER);
-
+       | symtables {
+               $$ = new Symtables_identifier ($1, IDENTIFIER);
+       }
+       | translator_spec {
+               $$ = new Translator_identifier ($1, TRANS_IDENTIFIER);
        }
        | Music  {
                $$ = new Music_identifier ($1, MUSIC_IDENTIFIER);
-
-       }
-       | symtables {
-               $$ = new Symtables_identifier ($1, IDENTIFIER);
        }
+
        | post_request {
                $$ = new Request_identifier ($1, POST_REQUEST_IDENTIFIER);
        }
@@ -415,8 +439,9 @@ identifier_init:
        | int   {
                $$ = new int_identifier (new int ($1), INT_IDENTIFIER);
        }
-       | translator_spec {
-               $$ = new Translator_identifier ($1, TRANS_IDENTIFIER);
+       | script_definition {
+               $$ = new General_script_def_identifier ($1, SCRIPT_IDENTIFIER);
+
        }
        ;
 
@@ -567,12 +592,11 @@ paper_def_body:
                Lookup * l = global_lookup_l->lookup_p (*$4);
                $$->set_lookup ($2, l);
        }
-       | paper_def_body STRING '=' simple_identifier_init ';' {
-             THIS->lexer_p_->set_identifier (*$2, $4);
-             delete $2;
+       | paper_def_body assignment ';' {
+
        }
        | paper_def_body translator_spec {
-               $$-> assign_translator ($2);
+               $$->assign_translator ($2);
        }
        | paper_def_body SHAPE '=' shape_array ';' {
                $$->shape_int_a_ = *$4;
@@ -583,44 +607,61 @@ paper_def_body:
        }
        ;
 
-real_primary:
-       REAL            {
-               $$ = $1;
+
+real:
+       real_expression         { $$ = $1; }
+       ;
+
+
+dimension:
+       REAL CM_T       {
+               $$ = $1 CM;
        }
-       | REAL_IDENTIFIER               {
-               $$= *$1->access_Real (false);
+       | REAL PT_T     {
+               $$ = $1 PT;
        }
-       | dim
-       | '(' real ')' {
-               $$ = $2;
+       | REAL IN_T     {
+               $$ = $1 INCH;
+       }
+       | REAL MM_T     {
+               $$ = $1 MM;
        }
        ;
 
-real:
-       real_mult_expression
-       | real '+' real_mult_expression {
-               $$ = $1 + $3;
+real_expression:
+       REAL            {
+               $$ = $1;
        }
-       | real '-' real_mult_expression {
-               $$ = $1 - $3;
+       | dimension
+       | REAL_IDENTIFIER               {
+               $$= *$1->access_Real (false);
        }
-       ;
-
-real_mult_expression:
-       real_primary
-       | real_mult_expression '*' real_primary {
+       | '-'  real_expression %prec UNARY_MINUS {
+               $$ = -$2;
+       }
+       | real_expression '*' real_expression {
                $$ = $1 * $3;
        }
-       | real_mult_expression '/' real_primary {
+       | real_expression '/' real_expression {
                $$ = $1 / $3;
        }
+       | real_expression '+' real_expression {
+               $$ = $1  + $3;
+       }
+       | real_expression '-' real_expression {
+               $$ = $1 - $3;
+       }
+       | '(' real_expression ')'       {
+               $$ = $2;
+       }
        ;
+               
 
 shape_array:
        /* empty */ {
                $$ = new Array<Interval>;
        }
-       | shape_array dim dim {
+       | shape_array real real {
                $$->push(Interval($2, $2 + $3));
        };
 
@@ -671,6 +712,11 @@ Music_list: /* empty */ {
        ;
 
 
+Music:
+       Simple_music
+       | Composite_music
+       ;
+
 Sequential_music: '{' Music_list '}'           {
                $$ = new Sequential_music ($2);
        }
@@ -680,9 +726,17 @@ Simultaneous_music: '<' Music_list '>'     {
                $$ = new Simultaneous_music ($2);
        }
        ;
-Music:
+
+Simple_music:
        request_chord           { $$ = $1; }
-       | TYPE STRING Music     {
+       | MUSIC_IDENTIFIER { $$ = $1->access_Music (true); }
+       | property_def
+       | translator_change
+       ;
+
+
+Composite_music:
+       TYPE STRING Music       {
                $$ = $3;
                $$->translator_type_str_ = *$2;
                delete $2;
@@ -694,13 +748,16 @@ Music:
                delete $2;
                delete $4;
        }
+       | TIMES int '/' int Music       {
+               $$ = new Compressed_music ($2, $4, $5);
+
+       }
        | Simultaneous_music            { $$ = $1; }
        | Sequential_music              { $$ = $1; }
        | TRANSPOSE musical_pitch Music {
                $$ = new Transposed_music ($3, *$2);
                delete $2;
        }
-       | MUSIC_IDENTIFIER { $$ = $1->access_Music (true); }
        | NOTES
                { THIS->lexer_p_->push_note_state (); }
        Music
@@ -708,15 +765,13 @@ Music:
                  THIS->lexer_p_->pop_state ();
                }
 
-       | LYRIC
+       | LYRICS
                { THIS->lexer_p_->push_lyric_state (); }
        Music
                {
                  $$ = $3;
                  THIS->lexer_p_->pop_state ();
                }
-       | property_def
-       | translator_change
        | relative_music        { $$ = $1; }
        ;
 
@@ -760,7 +815,6 @@ scalar:
        ;
 
 
-
 request_chord:
        pre_requests simple_element post_requests       {
                THIS->add_requests ((Simultaneous_music*)$2);//ugh
@@ -769,16 +823,12 @@ request_chord:
        | command_element
        ;
 
-
-
-
 command_element:
        command_req {
                $$ = new Request_chord;
                $$-> set_spot (THIS->here_input ());
                $1-> set_spot (THIS->here_input ());
                ((Simultaneous_music*)$$) ->add_music ($1);//ugh
-
        }
        ;
 
@@ -794,8 +844,19 @@ abbrev_command_req:
        | COMMAND_IDENTIFIER    {
                $$ = $1->access_Request (true);
        }
+/*
+       | '['           {
+               $$ = new Beam_req;
+               $$->spantype = Span_req::START;
+       }
+       | ']'           {
+               $$ = new Beam_req;
+               $$->spantype = Span_req::STOP;
+       }
+*/
        ;
 
+
 verbose_command_req:
        BAR STRING                      {
                $$ = new Bar_req (*$2);
@@ -1262,7 +1323,7 @@ simple_element:
        steno_notepitch notemode_duration  {
                if (!THIS->lexer_p_->note_state_b ())
                        THIS->parser_error (_ ("have to be in Note mode for notes"));
-               $1->set_duration (*$2);
+               $1->duration_ = *$2;
                $$ = THIS->get_note_element ($1, $2);
        }
        | RESTNAME notemode_duration            {
@@ -1330,35 +1391,21 @@ int:
        }
        ;
 
-string_primary:
+
+string:
        STRING          {
                $$ = $1;
        }
        | STRING_IDENTIFIER     {
                $$ = $1->access_String (true);
        }
-       ;
-
-string:
-       string_primary {
-               $$ = $1;
-       }
-       | string '+' string_primary {
+       | string '+' string {
                *$$ += *$3;
                delete $3;
        }
        ;
 
-dim:
-       real_primary unit       { $$ = $1*$2; }
-       ;
-
 
-unit:  CM_T            { $$ = 1 CM; }
-       |IN_T           { $$ = 1 INCH; }
-       |MM_T           { $$ = 1 MM; }
-       |PT_T           { $$ = 1 PT; }
-       ;
 
 /*
        symbol tables
@@ -1422,7 +1469,7 @@ box:
        }
        ;
 
-dinterval: dim dim             {
+dinterval: real        real            {
                $$ = new Interval ($1, $2);
        }
        ;
index 391ec74d402a4eb16535e65864ec34ec89596675..8da468ec92d2d13b0373c113d8b5b3a105a2aaaf 100644 (file)
@@ -48,6 +48,10 @@ Plet_engraver::do_try_request (Request* req_l)
   if (!mus_l)
     return false;
 
+  /*
+    UGH! This is incorrect!
+    Beam_req might not reach the Plet_engraver if ordering is wrong!
+   */
   Beam_req* b = mus_l->access_Beam_req ();
   if (b)
     {
index da30301901a10d06df5aec933a7c76354e6013c4..92f1a2c8dfd6f414417b20486404bdfa82d0668c 100644 (file)
 #include "translation-property.hh"
 #include "translator-group.hh"
 
-Property_iterator::Property_iterator (Translation_property *prop_l)
-{
-  property_l_ = prop_l;
-}
-
 void
-Property_iterator::process_and_next (Moment m)
+Property_iterator::do_process_and_next (Moment m)
 {
-  if (property_l_->var_str_.length_i ())
-    report_to_l ()->set_property (property_l_->var_str_, property_l_->value_);
-  Music_iterator::process_and_next (m);
+  if (property_l()->var_str_.length_i ())
+    report_to_l ()->set_property (property_l()->var_str_, property_l()->value_);
+  Music_iterator::do_process_and_next (m);
 }
 
 IMPLEMENT_IS_TYPE_B1(Property_iterator, Music_iterator);
+
+Translation_property*
+Property_iterator::property_l () const
+{
+  return (Translation_property*) music_l_;
+}
index f488b5e92a31358f17b14463e79472a0b44ca9ac..8d160b1f88a50e98a77d873d832413bc73d9b61b 100644 (file)
 #include "string-convert.hh"
 #include "main.hh"
 #include "file-results.hh"
-#include "header.hh"
+#include "scope.hh"
 #include "paper-stream.hh"
 #include "ps-stream.hh"
 #include "ps-outputter.hh"
+#include "scope.hh"
+#include "dictionary-iter.hh"
+#include "identifier.hh"
 
 Ps_lookup::Ps_lookup ()
   : Lookup ()
@@ -123,17 +126,43 @@ Ps_lookup::lookup_p (Symtables const& s) const
 {
   return new Ps_lookup (s);
 }
+extern char const *lily_version_number_sz ();
+
+String
+header_to_ps_string (Scope *head)
+{
+  String s;
+  String lily_id_str = "Lily was here, " +
+    String (lily_version_number_sz ());
+  
+  s+= "/lily_id_string\n{" + lily_id_str + "} bind def\n";
+  
+  for (Dictionary_iter<Identifier*> i (*head); i.ok (); i++)
+    {
+      if (!i.val ()->access_String_identifier ())
+       continue;
+      
+      String val = *i.val()->access_String_identifier ()->data_p_;
+      
+      s += "/mudela" + i.key () + "{" + val + "} bind def\n";
+    }
+      
+  return s;
+}
 
 Paper_outputter*
 Ps_lookup::paper_outputter_p (Paper_stream* os_p, Paper_def* paper_l, Header* header_l, String origin_str) const
 {
   if (header_global_p)
-    *os_p << header_global_p->ps_string ();
-  
+    *os_p << header_to_ps_string (header_global_p);
+
   *os_p << _ ("\n% outputting Score, defined at: ") << origin_str << '\n';
 
   if (header_l)
-    *os_p << header_l->ps_string ();
+    {
+      *os_p << header_to_ps_string (header_l);
+    }
+
   *os_p << paper_l->ps_output_settings_str ();
 
   if (experimental_features_global_b)
@@ -145,11 +174,7 @@ Ps_lookup::paper_outputter_p (Paper_stream* os_p, Paper_def* paper_l, Header* he
 Paper_stream*
 Ps_lookup::paper_stream_p () const
 {
-#if 1
   String outname = base_output_str ();
-#else
-  String outname = "lelie";
-#endif
 
   if (outname != "-")
     outname += ".ps";
index 37a25ba848235c995f54116efbb487ae9d08697e..56764298f5900e2552044c9715af355e00002c65 100644 (file)
@@ -17,14 +17,18 @@ IMPLEMENT_IS_TYPE_B1(Request_chord_iterator,Music_iterator);
 void
 Request_chord_iterator::construct_children()
 {
+  elt_duration_ =elt_l ()->duration ();
   get_req_translator_l();
 }
 
-Request_chord_iterator::Request_chord_iterator (Request_chord*el_l)
+Request_chord*
+Request_chord_iterator::elt_l () const
+{
+  return (Request_chord*) music_l_;
+}
+
+Request_chord_iterator::Request_chord_iterator ()
 {
-  elt_l_ = el_l;
-  MInterval elt_dur =el_l->time_int();
-  elt_duration_ = elt_dur.length ();
   last_b_ = false;
 }
 
@@ -55,11 +59,11 @@ Request_chord_iterator::do_print() const
 }
 
 void
-Request_chord_iterator::process_and_next (Moment mom)
+Request_chord_iterator::do_process_and_next (Moment mom)
 {
   if (first_b_)
     {
-      for (PCursor<Music*> i (elt_l_->music_p_list_p_->top ()); i.ok(); i++)
+      for (PCursor<Music*> i (elt_l ()->music_p_list_p_->top ()); i.ok(); i++)
        {
          assert (i->is_type_b (Request::static_name()));
          Request * req_l = (Request*)i.ptr();
index bf20a29075e8877ace511833dde9fc88dfdb092f..858d5c44d52956cf75991fcd16f1b024ddc52ead 100644 (file)
@@ -17,11 +17,7 @@ Request::do_print() const
 {
 }
 
-MInterval
-Request::time_int() const
-{
-  return MInterval (0, duration());
-}
+
 
 
 bool
index c8f0d3e78982592ececb394f64abbbbe6e7d4d33..38d393f16091b54ecc5dc577df2b9eb3966771f6 100644 (file)
@@ -53,14 +53,16 @@ Rest_collision::do_post_processing()
 
   int dir_i = rest_l_arr_[0]->dir_;
   int midpos = 4;
-#if 1
   // ugh
   int stem_length_i = 7 - 2;
   // ugh, Stem::stem_start vs Stem::stem_end
   int pos = (int)(stem_l->stem_end_f() - midpos) - dir_i * stem_length_i;
-#else // nogo: stem_start not set for rests?
+  /*
+    nogo: stem_start not set for rests?
   int pos = (stem_l->stem_begin_f() - midpos) + dir_i * 2;
-#endif
+
+  WHY IS THIS STILL HERE? --hwn
+  */
   rest_l_arr_[0]->translate_rests (pos);       
 }
 
index e09cb71e72272c64e22bda906bcb17a95f283a37..8600a6a1818e20f2d1063d486916f38e0eb3d101 100644 (file)
@@ -15,7 +15,7 @@
 #include "music-iterator.hh"
 #include "music.hh"
 #include "global-translator.hh"
-#include "header.hh"
+#include "scope.hh"
 #include "cpu-timer.hh"
 #include "main.hh"
 #include "paper-def.hh"
@@ -58,10 +58,11 @@ Score::run_translator (Music_output_def *odef_l)
       return ;
     }
   *mlog << '\n' << _("Interpreting music...") << flush;
-  trans_p->last_mom_ = music_p_->time_int().max ();
+  trans_p->last_mom_ = music_p_->duration ();
+
+  Music_iterator * iter = Music_iterator::static_get_iterator_p (music_p_, trans_p);
+  
 
-  Music_iterator * iter = Music_iterator::static_get_iterator_p (music_p_,
-                                                                trans_p);
   iter->construct_children();
 
   if (! iter->ok())
index 9b2a80bee33760cfbfdb4cb993dc00d0e3352aac..f41666b0ad7f8d8d202ac43e193c0890485f1c95 100644 (file)
@@ -10,7 +10,7 @@
 #include "score.hh"
 #include "string.hh"
 #include "paper-def.hh"
-#include "header.hh"
+#include "scope.hh"
 #include "debug.hh"
 #include "parray.hh"
 #include "file-path.hh"
index 3e82c82a59bb116c44426c4f1a23c4bef0917b79..c50b233904f8ae4533629d532da55b56750e0e9c 100644 (file)
 #include "string-convert.hh"
 #include "main.hh"
 #include "file-results.hh"
-#include "header.hh"
+#include "scope.hh"
 #include "paper-stream.hh"
 #include "tex-stream.hh"
 #include "tex-outputter.hh"
+#include "dictionary-iter.hh"
+#include "identifier.hh"
 
 Tex_lookup::Tex_lookup ()
   : Ps_lookup ()
@@ -98,16 +100,40 @@ Tex_lookup::lookup_p (Symtables const& s) const
   return new Tex_lookup (s);
 }
 
+extern char const *lily_version_number_sz ();
+
+String
+header_to_tex_string (Scope *head)
+{
+  String s;
+  String lily_id_str = "Lily was here, " +
+    String (lily_version_number_sz ());
+  s+= "\\def\\LilyIdString{"  + lily_id_str + "}";
+  
+  for (Dictionary_iter<Identifier*> i(*head); i.ok (); i++)
+    {
+      if (!i.val ()->access_String_identifier ())
+       continue;
+      
+      String val = *i.val()->access_String_identifier ()->data_p_;
+      s += "\\def\\mudela" + i.key () + "{" + val  + "}\n";
+    }
+  return s;
+}
+
+
 Paper_outputter*
-Tex_lookup::paper_outputter_p (Paper_stream* os_p, Paper_def* paper_l, Header* header_l, String origin_str) const
+Tex_lookup::paper_outputter_p (Paper_stream* os_p, Paper_def* paper_l, Scope* header_l, String origin_str) const
 {
   if (header_global_p)
-    *os_p << header_global_p->tex_string ();
+    *os_p << header_to_tex_string(header_global_p);
   
   *os_p << _ ("\n% outputting Score, defined at: ") << origin_str << '\n';
 
   if (header_l)
-    *os_p << header_l->tex_string();
+    *os_p << header_to_tex_string (header_global_p);
+  
+
   *os_p << paper_l->tex_output_settings_str ();
   
   if (experimental_features_global_b)
@@ -121,11 +147,7 @@ Tex_lookup::paper_outputter_p (Paper_stream* os_p, Paper_def* paper_l, Header* h
 Paper_stream *
 Tex_lookup::paper_stream_p () const
 {
-#if 1
   String outname = base_output_str ();
-#else
-  String outname = "lelie";
-#endif
 
   Paper_stream* p;
   if (outname != "-")
index c4478031e71d7a1160b601be70cdaaf0b2f10281..3c902918d5ef3045ceb3cd1d299f2f12005320b4 100644 (file)
@@ -19,18 +19,25 @@ Sequential_music_iterator::do_print() const
     iter_p_->print();
 }
 
-Sequential_music_iterator::Sequential_music_iterator (Sequential_music const*v)
-  : PCursor<Music*> (*v->music_p_list_p_)
+Sequential_music_iterator::Sequential_music_iterator ()
 {
-  here_mom_ = v->offset_mom_;
-  sequential_music_C_ = v;
+  cursor_p_ = 0;
+  here_mom_ = 0;
   iter_p_ =0;
 }
 
+Sequential_music*
+Sequential_music_iterator::sequential_music_l () const
+{
+  return (Sequential_music *)music_l_;
+}
+
 void
 Sequential_music_iterator::construct_children()
 {
-  while (PCursor<Music*>::ok()) 
+  cursor_p_ = new PCursor<Music*> (sequential_music_l ()->music_p_list_p_->top ());
+  
+  while (cursor_p_->ok()) 
     {
       start_next_element();
       if (!iter_p_->ok()) 
@@ -50,17 +57,16 @@ Sequential_music_iterator::leave_element()
 {
   delete iter_p_;
   iter_p_ =0;
-  MInterval elt_time = ptr()->time_int ();
-  if (!elt_time.empty_b())
-    here_mom_ += elt_time.length();
-  PCursor<Music*>::next();
+  Moment elt_time = cursor_p_->ptr()->duration ();
+  here_mom_ += elt_time;
+  cursor_p_->next();
 }
 
 void
 Sequential_music_iterator::start_next_element()
 {
   assert (!iter_p_);
-  iter_p_ = get_iterator_p (ptr());
+  iter_p_ = get_iterator_p ( cursor_p_->ptr());
 }
 
 void
@@ -72,6 +78,7 @@ Sequential_music_iterator::set_Sequential_music_translator()
 
 Sequential_music_iterator::~Sequential_music_iterator()
 {
+  delete cursor_p_;
   assert (! iter_p_);
 }
 
@@ -79,7 +86,7 @@ Sequential_music_iterator::~Sequential_music_iterator()
 IMPLEMENT_IS_TYPE_B1(Sequential_music_iterator,Music_iterator);
 
 void
-Sequential_music_iterator::process_and_next (Moment until)
+Sequential_music_iterator::do_process_and_next (Moment until)
 {
   while (1) 
     {
@@ -97,7 +104,7 @@ Sequential_music_iterator::process_and_next (Moment until)
        {
          leave_element();
          
-         if (PCursor<Music*>::ok()) 
+         if (cursor_p_->ok()) 
            {
              start_next_element();
              set_Sequential_music_translator();
@@ -111,7 +118,7 @@ Sequential_music_iterator::process_and_next (Moment until)
 
 loopexit:
 
-  Music_iterator::process_and_next (until);
+  Music_iterator::do_process_and_next (until);
 }
 
 Moment
@@ -126,4 +133,3 @@ Sequential_music_iterator::ok() const
   return iter_p_;
 }
 
-
index 1864cc4b325bfbbd877f836cbe2717e27401ab77..359053c74f16077d88924a9ba6ea73cf93267320 100644 (file)
@@ -17,7 +17,7 @@ Prereq: tetex
 %prep
 %setup
 %build
-./configure --disable-checking --disable-debugging --enable-printing --prefix=/usr --enable-optimise --enable-shared --enable-tex-dir='${prefix}/lib/texmf/texmf/tex/generic' --enable-mf-dir='${prefix}/lib/texmf/texmf/fonts/source/'
+./configure --disable-checking --disable-debugging --enable-printing --prefix=/usr --enable-optimise --enable-shared
 make all
 make -C Documentation info || true
 make htmldoc
@@ -29,6 +29,8 @@ tar -C $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc -xzf out/htmldoc.tar.gz
 
 strip lily/out/lilypond mi2mu/out/mi2mu
 make prefix="$RPM_BUILD_ROOT/usr" install
+cp buildscripts/out/lilypond-profile $RPM_BUILD_ROOT/etc/profile.d/lilypond.sh
+
 %files
 
 %doc /tmp/lilypond-rpm-doc
@@ -57,6 +59,7 @@ make prefix="$RPM_BUILD_ROOT/usr" install
 /usr/lib/texmf/texmf/fonts/source/public/lilypond
 /usr/share/lilypond/
 /usr/share/locale/*/LC_MESSAGES/lilypond.mo
+/etc/profile.d/lilypond.sh
 %post
 
 ## ln -s  /usr/lib/texmf/texmf/tex/lilypond  /usr/lib/texmf/texmf/tex/latex/lilypond # suck me plenty
index 0a11afa384f9e0732fb4db059c1069e1a122d18a..4a991ee000359043d688f4a87825899d18714ef2 100644 (file)
@@ -8,7 +8,7 @@ ATVARIABLES = \
   BASH\
   DATE\
   date\
-  DIR_DATADIR\
+  datadir\
   PACKAGE\
   package\
   PATHSEP\
index db210b4e5c84d693901f7a986700e79d8ff79241..363f3229ddb71e58b1448df859fbc75f523760b1 100644 (file)
@@ -29,9 +29,9 @@ $(outdir)/%.afm $(outdir)/%.ly $(outdir)/%.tex $(outdir)/%.dep: $(outdir)/%.log
 
 
 
-TEXINSTALL=$(MAKE) INSTALLATION_OUT_DIR=$(TEXDIR)/lilypond depth=.. INSTALLATION_OUT_FILES="$(TEXTABLES)" -f $(stepdir)/install-outfiles.sub.make $@
+TEXINSTALL=$(MAKE) INSTALLATION_OUT_DIR=$(datadir)/tex/ depth=.. INSTALLATION_OUT_FILES="$(TEXTABLES)" -f $(stepdir)/install-outfiles.sub.make $@
 
-AFMINSTALL=$(MAKE) depth=.. INSTALLATION_OUT_DIR=$(datadir) INSTALLATION_OUT_FILES="$(AFM_FILES)" -f $(stepdir)/install-outfiles.sub.make $@
+AFMINSTALL=$(MAKE) depth=.. INSTALLATION_OUT_DIR=$(datadir)/ INSTALLATION_OUT_FILES="$(AFM_FILES)" -f $(stepdir)/install-outfiles.sub.make $@
 
 LYINSTALL=$(MAKE) depth=.. INSTALLATION_OUT_DIR=$(datadir) INSTALLATION_OUT_FILES="$(LYTABLES)" -f $(stepdir)/install-outfiles.sub.make $@
 
@@ -45,7 +45,7 @@ localuninstall:
        $(LYINSTALL)
        $(AFMINSTALL)
 
-INSTALLATION_DIR=$(MFDIR)/public/lilypond
+INSTALLATION_DIR=$(datadir)/mf/
 INSTALLATION_FILES=$(MF_FILES)
 
 include $(stepdir)/installfiles.make
index 5f9a6ea234cf79e76c0e3970ce682160bfa0b374..c0ba5963d30e7173dddf64948d34d2251ca67389 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "violoncello.ly"
index 60e77fc9862ca52fcc8f5128b65c8223df4f5142..92fe5ab01a4b1b2fbcc896d9f15709e16b1b9cbb 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "clarinetti.ly"
index 0ae6fe14989577d9281a2426dcd5fa8aa41db3a1..cc1feb679c8d29a03e00436465c23c57f384f8a5 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "clarinetto-1.ly"
 \include "clarinetto-2.ly"
index 41185ad508b65d0bdfb4f12aa7f0b6c967f8fe45..988a069d3c0aea3cf5417139dc8de502100b9458 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 clarinetto1 = \notes \relative c {
        R1 *2 | d''4-.\ff r r2 | R1 *3 | e4-. r r2 | R1 *3 |
index f20ffa83578124c5820a75630cad9c79f3bbf4f4..005c59f8090cc3776cd4262f138c2726240d9af9 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 clarinetto2 = \notes \relative c { 
        R1*2 bes''4-.\ff r r2 | R1*3 | cis4-. r r2 | R1 *3 | 
index 5562da4dd9e23ed1b5fd2c545af75111e8f14404..c3477f67ba0d4e27e160838c927eb7a68ef91a95 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "contrabasso.ly"
index 3ddaa8d3d890fc1c8c05afd4f0c674ddf0053bda..5d1219670a7ac61e88e3f4a57162c2512fdcba7d 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 contrabasso = \notes \relative c {
 %      \translator Staff=violoncello
index b1831d5ca8616e0a02ad282682c7098c77b70346..eeb3e58ee79b29ebe669515d1a7e8b56bb5782bc 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 
index 33a62d075540600f28360fb4270a7d9317bc47cf..666e6a32ec8cf296820c6419d8aa7f129b4e3db1 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "corni.ly"
index 4f3e219ee1e7bbea9168092e66d3ee2a39aad508..bc65252b22a226c429b20620daa973224dd2b290 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "corno-1.ly"
 \include "corno-2.ly"
index ea05e79c15b562f5875b6d546c5d3adba6131b19..212c2a5664b5f3256a7bba78f6ed0fba096a479d 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 corno1 = \notes \relative c {
        R1 *2 | f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index d36a5c53fdd9a80a8f5cebf313b3b0bdaa3423bf..01c1dc60ebab10ff528c1f7dc0ba1437345351d6 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 corno2 = \notes \relative c {
        R1 *2 | d''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
index 01f7b5f2d2b222881cf11bb3058feaf9fe6dacb9..3422f0d0a22362773fee7274e2dec68130dea433 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "fagotti.ly"
index 4b6192f1660d454ba2816ecd6e9d9dc4ecbabad0..ebcbade8abb2ad40cf3142362a3675545574a39f 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "fagotto-1.ly"
 \include "fagotto-2.ly"
index ed3b836ac99080a18de18963829369d5818457fd..50e40a3a76e3f4cf600ef3e7ee9fec3f7f6d25d0 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 fagotto1 = \notes \relative c {
        R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
index d5cd40569c415ceb0d1f5a922d6bb530af319ccb..0a5fd2f68da4cfa1c445e58ee0a2fdb4f92c8e30 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 fagotto2 = \notes \relative c {
        R1 *2 | f4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index b588c6ec274532ec22c24bdf53e051cdaf58f00b..754bb2b315cad112400a86b6f8c48db29cc56b56 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "flauti.ly"
index 5fcc5d2003a8001352561e0b38dfe195d36a98b1..67cc15c87c3e42555d3f1662cf0fb011ae8be68d 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "flauto-1.ly"
 \include "flauto-2.ly"
index d4c80946189e1e8877ef52dbc10f43a0f40964c6..7e525512647952f8e480b42ec932d251fca4fedc 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 flauto1 = \notes \relative c {
        R1 *2 | c'''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
index 677e10111b5d9b3a5e9abf7a1c095cafa2cdc4ea..8f88c1b48567be431c87731e22fb08aff9a5481b 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 flauto2 = \notes \relative c {
        R1 *2 | as'''4-.\ff r r2 | R1 *3 | b4-. r r2 | R1 *3 | 
index c7006517e275430298a70b4099a32eb252a55ae3..4ab55109e9a98c992e167834bddb675b4aaa23e4 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 global = \notes {
        \time 4/4;
index fadc4eb74e29b17203942db52c2a72f6ab4630ff..34eae359ecfbe3d8c29f5045972e91e5a2db7186 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 oboe1 = \notes \relative c'' {
        R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
index 96d36c05ac0a381fd0b760cc60491f28bbb81c74..336bddb6ed1e933918a1bd4847db35d89be146aa 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 oboe2 = \notes \relative c{
        R1 *2| f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index 9c8f03f82fa1f4ff4e7aad44e6343e6e4023cb1e..a590de0fcd69534eca40270321f061cc5774b8ae 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "oboi.ly"
index 2f16346d2c58e2f7d0493f7650612b7481d899bb..7975c8e45ef80a2a59603758ec24b5c4d0df67bb 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "oboe-1.ly"
 \include "oboe-2.ly"
index bb83ba75f59f411d16924f47f33b31a140776196..d9542bf67978e344725b4d2c09088b4bbc933684 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 timpani = \notes \relative c {
        R1 *2 | c4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index fd10ff150552ea9806fc780efe35b5f013beef76..88ef92f50951a56d7188b0ad556a8223d8d01ca3 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "trombe.ly"
index e7c58a633420735b4f20fa9e1cb4da3c03ce0469..3442f8eba759b6f2478733538bad39d344fcd8ef 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "trombo-1.ly"
 \include "trombo-2.ly"
index 2b2314cf58ad02ebf7d12e0923ecb5b07d948d6f..5ea884c1eae71f02df87bbce5ce14d0b113d13b2 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 trombo1 = \notes \relative c {
        R1 *2 | c''4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index 41b15f1b4515055ab87deb256469d11677592576..dd034f79995755446d4040ca09cc6feb4dd4f5b9 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 trombo2 = \notes \relative c {
        R1 *2 | c'4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index 155c40b1f60f51b08f064f308d9863a721f4eda3..324bbd557f2ba3b3afb277cd4afea09b06df3bd4 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 viola1 = \notes \relative c {
        \type Voice=one
index 5623a5459e9ef3f9a722794dbf093d02cb04ce05..3a5f23d6802c60357aa043a158c0538a70c7b807 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 viola2 = \notes \relative c {
        % starts on (actualy, most part is on) same staff as viola1
index 42bc8c95b33a45e790788168e9c4ec9aa6354bc0..f565164a838354f785b3dda87f4ed94cc8606155 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "viola-1.ly"
index a1b2a54829a35decae76474d33a64de21fd2f5c1..e4dfecca156232f0bd9b6d3b97516651d5a393cb 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "violino-1.ly"
index 2ce139fdd6925760a32e32b364a884df83382e7d..93da1ca224d3fcd337ba025c9563914625d4f275 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 violino1 = \notes \relative c {
        c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
index b56fc8fbcb8f428776b0dd6a4036060d09ccfdc3..eaebc74b0a742d010e775ac7502036da1ea5a288 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "violino-2.ly"
index 50c2a19b20e4b2a4e16ef8065dcb21333f8218a5..6c0f9e069b26b26bf7d62a67cbc504b484c3cb72 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 violino2 = \notes \relative c {
        c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
index 972103b6ce2abb1ce76c1575180ec02ba54c10de..c382f9943fea06e14a3f478c1d42ac181518cf90 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "global.ly"
 \include "violoncello.ly"
index 849f2731abcbda817a3f42389637f1fa407d1274..893da283d0183995893f2a5526f6f0521ad4a127 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 violoncello = \notes \relative c {
        c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 |
index 53347bab50e225d00410125ec3e2c2a722df6c23..6a9d46309a6c5d6235d176c62b47ad1afdfe9293 100644 (file)
@@ -4,7 +4,7 @@
        piece = "Allemande";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 global = \notes{
        \time 4/4;
index 5a8991e351eb79fce7e2f517e6ad23f8017e1f8f..003e2f4c8f429aa93a7de3157211843c59171b92 100644 (file)
@@ -10,7 +10,7 @@
   copyright =   "Public Domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 global = \notes {
        \time 4/4;
index 02851b99483d84f11558c6d72a84404bc449447e..63bc884eb9a6a4a6d87ce37d61d07afaea1612dc 100644 (file)
@@ -14,7 +14,7 @@ enteredby =    "jcn";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 one = \notes\relative c {
        \property Voice . textstyle =  "italic"
index 46d3d1379429223a19f17a6e4d21bc9424f282ca..65f98fe3ba6c3bae6bd7f777116ed3d68e929e75 100644 (file)
@@ -14,7 +14,7 @@ enteredby =    "jcn";
 copyright =     "public domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 one = \notes\relative c{
        \property Voice . textstyle =  "italic"
        r8\mf [c'-1( e-2 g-4] [e-2 c-1 bes'-5 g-3] |
index d2166be60b71fa3be7b3293f1c31d4b4d2b8e441..011f3da24a25a26e195bbc0298412d3561dc2175 100644 (file)
@@ -21,7 +21,7 @@ enteredby =    "jcn";
 copyright =     "public domain";
 }
 
-\version "1.0.3";
+\version "1.0.7";
 
 
 one = \notes  \transpose c`` {
index 2373753f99e9292bf49b3d97e7eeb2856b9fb836..daf563f99ab9632ad263e09918dd2a507f1c6747 100644 (file)
@@ -12,7 +12,7 @@ composer =     "Johann Sebastian Bach (1685-1750)";
 enteredby =     "jcn";
 copyright =     "public domain";
 }
-\version "1.0.6";
+\version "1.0.7";
 
 one = \notes\relative c{
        \property Voice . textstyle =  "italic"
index 6148cc1ef1d0d1d051a35488127247d251456d2a..57aff962f3e92282dbf0b42945003a626e4a6a6b 100644 (file)
@@ -12,7 +12,7 @@ composer =     "Johann Sebastian Bach (1685-1750)";
 enteredby =     "jcn";
 copyright =     "public domain";
 }
-\version "1.0.6";
+\version "1.0.7";
 
 
 one = \notes\relative c{
index b67f8994156e64bd5b30364805e0d2ab36b1af5c..030c149d63393d83f5a1bb84e77a573079699138 100644 (file)
@@ -12,7 +12,7 @@ composer =     "Johann Sebastian Bach (1685-1750)";
 enteredby =     "jcn";
 copyright =     "public domain";
 }
-\version "1.0.6";
+\version "1.0.7";
 
 
 one = \notes\relative c{
index 9bc938b830335b25c16db005936d8a2f10ac448f..c2c7499f9aa070a6d32e08be5d41cfdd9e8e4096 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "allemande-urtext.ly";
 
index 53fefe98c3fcae66f970a80ba3de4866d862731e..dc360baa9196735ab31735056f0ccc9192c2b8c4 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "allemande-urtext.ly";
 
index bef3deb015a2f27fbf95fb9f3be7b7576fd0364b..74d7c1a6d750574d952f4b877641b2430612fd72 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "courante-urtext.ly";
 
index 6e8734fe3d1878baaf11ef45c37d22bd58945765..1d87f2507b0bcfb9990cda31f559a50840b9a172 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "courante-urtext.ly";
 
index 1281558bbfb4b7991fd797067804c130d3f00106..873561a58eca9543497dbc70c733826f674ff90c 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "gigue-urtext.ly";
 
index bbc8852eef1193aeacf6874211de76e873702885..d8df62596e89f1dab6b3433a09882d06a38a2619 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "gigue-urtext.ly";
 
index cc9662b8a10e65dc19347beebc87130e6fe84d14..0c51f33c0a5d41a85b194c531d8da2d32ee6e6e3 100644 (file)
@@ -16,7 +16,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "menuetto-urtext.ly";
 
index 475d9a94dabebfded73d79f93a01570d3678afbf..f3f8547a58ace7b822d173baea25d073eb617333 100644 (file)
@@ -17,7 +17,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "menuetto-urtext.ly";
 
index 1905bfcea6c685c3e6a9435af9eaca2d62614a03..d6da16538f74adf70fe78a80f062360b170d8e92 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "prelude-urtext.ly";
 
index 98442c31fd0ba794fc010f40033cd6a26c52f567..e8711cf72ae329ba235dda6bcacdb24c8ac59234 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "prelude-urtext.ly";
 
index 0900f4c6309c3c76247313529997a25bdba24640..ad27e7ad6edd2223c86b94a259cf7f91fd071d84 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "sarabande-urtext.ly";
 
index 24086de8d1687b58e87f02e440091b938213ef68..8dbe3f31a0cbb0ba83796f9e8411f2f279a92c8b 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "sarabande-urtext.ly";
 
index ff2d679a61935f8010eda01892dcd104a514f40f..2710105ec8602bbf99d3280cbec467cfa27d19fd 100644 (file)
@@ -11,7 +11,7 @@ copyright =    "Public Domain";
 %{
        
 %}
-\version "1.0.6";
+\version "1.0.7";
 
 
 global = 
index 867c968e5146df2bb181ce9750eadfff7d22ed38..8dc78543e7dc7fc339ab37fea1113e132542a568 100644 (file)
@@ -13,7 +13,7 @@
  Tested Features: stem direction, multivoice, forced accidentals.
 %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "nederlands.ly"                 % for correct parsing of note names
 
index aa78870d208700420f12f96f17ae24864b131f29..5e2354a7c120638660a908305a57bd827832834a 100644 (file)
@@ -8,7 +8,7 @@ enteredby =      "Shay Rojansky";
 copyright =     "Public Domain";
 }
 
-\version "1.0.6";
+\version "1.0.7";
 
 global = 
     \notes {
index e79a373423125da0032047d89af7bd61fc616fdf..7e7353ebf2765bd49a607a47727df1fd90d7a970 100644 (file)
@@ -13,7 +13,7 @@ Tested Features: cadenza mode
 Ugh.. Wish we had grace notes....  It adds another dimension to this
 piece of music.  %}
 
-\version "1.0.6";
+\version "1.0.7";
 
 
 cad = \notes  \relative c' {
index fe70940406e2b3b158081b1188f5a48d57ebea3e..f5b7f92c1d47958c2cba116e10b8fba6445536f9 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 }
 
 
-\version "1.0.6";
+\version "1.0.7";
 
 allegro =
        \notes
index 417657c88aca4d54183574a5693cd896bc03eefa..b6936163370ef5f394a93717dda14fb5fb5b82e2 100644 (file)
@@ -45,7 +45,7 @@ Voice engraver by uncommenting the lines in the paper
 definition below. --MB
 %} 
 
-\version "1.0.6";
+\version "1.0.7";
 
 vi1=\notes \relative c'' {
   \time 4/4;
index c4aa806955418aa88642c60d3ca01800394447c0..743db375ba67cf7cd00cbf18d6ebf7009f61aea4 100644 (file)
@@ -8,7 +8,7 @@ enteredby =      "jcn";
 copyright =     "public domain";
 latexheaders=    "headers";
 } 
-\version "1.0.6";
+\version "1.0.7";
 
 %{
 Silly latex file dropped; use ly2dvi
index 495414b8030d5747530ff36bf281e4197c9a4333..acd5d4635ed651b7dd6268186f8f6f01aa05962f 100644 (file)
@@ -9,6 +9,6 @@ description = "A schubert song in 16 pt";
 copyright =     "public domain";
 } 
 
-\version "1.0.6";
+\version "1.0.7";
 
 \include "standchen.ly"
index 3c41e60ddd915baa2c103aaf3f497cd5d53e8db6..91b41c14bd557aa575ecc852dd9c4f3de270dbfc 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 description = "A schubert song in 20 pt";
 } 
 
-\version "1.0.6";
+\version "1.0.7";
 
 % fool make-website
 % \include "standchen.ly";
index 6481c5b77b5876abb058a40aec6e9f6a7b561403..a51f700c675e7f28656fa1afc94fc07a7eda2303 100644 (file)
@@ -101,7 +101,7 @@ if 1:                                       # need new a namespace
                                found = 1
                                break
                if found:
-                       sys.stderr.write ('\nNot smart enough to convert \\octave\n')
+                       sys.stderr.write ('\nNot smart enough to convert \\octave')
                        raise FatalConversionError()
                return lines
                
@@ -139,7 +139,7 @@ if 1:                                       # need new a namespace
 
        conversions.append (
                ((0,1,21), conv, '\\musical_pitch -> \\musicalpitch, '+
-                '\\meter -> \\time\n'))
+                '\\meter -> \\time'))
 
 if 1:                                  # need new a namespace
        def conv (lines):
@@ -165,7 +165,7 @@ if 1:                                       # need new a namespace
 
        conversions.append (
                ((1,0,1), conv, '\\accidentals -> \\keysignature, ' +
-                'specialaccidentals -> keyoctaviation\n'))
+                'specialaccidentals -> keyoctaviation'))
 
 if 1:
        def conv(lines):
@@ -175,10 +175,10 @@ if 1:
                                found = 1
                                break
                if found:
-                       sys.stderr.write ('\nNot smart enough to convert to new \\header format\n')
+                       sys.stderr.write ('\nNot smart enough to convert to new \\header format')
                return lines
        
-       conversions.append ((1,0,2), conv, '\header { key = concat + with + operator }\n')
+       conversions.append ((1,0,2), conv, '\\header { key = concat + with + operator }')
 
 if 1:
        def conv(lines):
@@ -188,7 +188,8 @@ if 1:
                        newlines.append (x)
                return newlines
        
-       conversions.append ((1,0,3), conv, '\melodic -> \notes\n')
+       conversions.append ((1,0,3), conv, '\\melodic -> \\notes')
+
 if 1:
        def conv(lines):
                newlines =[]
@@ -198,7 +199,7 @@ if 1:
                        newlines.append (x)
                return newlines
        
-       conversions.append ((1,0,4), conv, 'default_{paper,midi}\n')
+       conversions.append ((1,0,4), conv, 'default_{paper,midi}')
 
 if 1:
        def conv(lines):
@@ -209,7 +210,7 @@ if 1:
                        newlines.append (x)
                return newlines
        
-       conversions.append ((1,0,5), conv, 'ChoireStaff -> ChoirStaff\n')
+       conversions.append ((1,0,5), conv, 'ChoireStaff -> ChoirStaff')
 
 if 1:
        def conv(lines):
@@ -220,12 +221,26 @@ if 1:
                        newlines.append (x)
                        if found: break
                if found:
-                       sys.stderr.write ('\nNot smart enough to \\translator syntax\n')
+                       sys.stderr.write ('\nNot smart enough to \\translator syntax')
                        raise FatalConversionError()
                return newlines
        
-       conversions.append ((1,0,6), conv, 'foo = \\translator {\type .. } ->\translator {\type ..; foo; }\n')
+       conversions.append ((1,0,6), conv, 'foo = \\translator {\\type .. } ->\\translator {\\type ..; foo; }')
+
+
+if 1:
+       def conv(lines):
+               newlines =[]
+               for x in lines:
+                       x =  regsub.gsub ('\\\\lyric', '\\\\lyrics',x)
+                       newlines.append (x)
+               return newlines
+       
+       conversions.append ((1,0,7), conv, '\\lyric -> \\lyrics')
+
+
 ############################
+       
 
 def get_conversions (from_version, to_version):
        def version_b (v, f = from_version, t = to_version):
index c6f3822ec18714bf1a4244df057a5b4611352451..86bf7797b04cba31a546ce44723ef51b4829920f 100644 (file)
@@ -7,7 +7,7 @@ TEX_FILES = $(wildcard *.tex)
 
 EXTRA_DIST_FILES =  $(TEX_FILES) lilyponddefs.ps
 
-INSTALLATION_DIR=$(TEXDIR)/lilypond
+INSTALLATION_DIR=$(datadir)/tex/
 INSTALLATION_FILES=$(TEX_FILES)
 
 include $(depth)/make/stepmake.make