]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.18 release/1.3.18
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 28 Dec 1999 01:27:55 +0000 (02:27 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 28 Dec 1999 01:27:55 +0000 (02:27 +0100)
===========

* Bugfix: beams with less than one (visible) stem

* small fixes to pa.ly

1.3.17.j

131 files changed:
AUTHORS.txt
CHANGES
Documentation/programmer/regression-test.tely
Documentation/topdocs/AUTHORS.texi
Documentation/user/properties.itely
TODO
VERSION
flower/include/real.hh
flower/include/string.hh
flower/include/text-db.hh
flower/include/text-stream.hh
flower/include/virtual-methods.hh
flower/polynomial.cc
flower/rational.cc
flower/real.cc [new file with mode: 0644]
flower/rtti.cc
flower/string.cc
flower/text-db.cc
flower/text-stream.cc
input/GNUmakefile
input/test/font-body.ly
input/test/force-hshift.fly [deleted file]
input/test/force-hshift.sly [new file with mode: 0644]
input/test/noteheadstyle.ly
input/test/rest.fly [deleted file]
input/test/rest.ly [new file with mode: 0644]
input/test/stem-centered.ly
input/trip.ly
lib/input.cc
lily/all-font-metrics.cc
lily/atom.cc
lily/bar-engraver.cc
lily/bar-number-engraver.cc
lily/bar-script-engraver.cc
lily/bar.cc
lily/base-span-bar-engraver.cc
lily/beam-engraver.cc
lily/beam.cc
lily/bezier-bow.cc
lily/bow.cc
lily/break-align-item.cc
lily/clef-engraver.cc
lily/clef-item.cc
lily/crescendo.cc
lily/duration.cc
lily/dynamic-engraver.cc
lily/engraver-group-engraver.cc
lily/global-translator.cc
lily/gourlay-breaking.cc
lily/grace-position-engraver.cc
lily/includable-lexer.cc
lily/include/audio-staff.hh
lily/include/bar-script-engraver.hh
lily/include/bar.hh
lily/include/bezier-bow.hh
lily/include/break-algorithm.hh
lily/include/clef-engraver.hh [deleted file]
lily/include/clef-item.hh
lily/include/crescendo.hh
lily/include/debug.hh
lily/include/local-key-item.hh
lily/include/slur.hh
lily/include/text-item.hh
lily/include/tuplet-spanner.hh
lily/include/volta-spanner.hh
lily/item.cc
lily/key-engraver.cc
lily/key-item.cc
lily/lily-guile.cc
lily/line-of-score.cc
lily/local-key-engraver.cc
lily/local-key-item.cc
lily/lyric-engraver.cc
lily/main.cc
lily/mark-engraver.cc
lily/my-lily-lexer.cc
lily/my-lily-parser.cc
lily/note-column.cc
lily/note-name-engraver.cc
lily/paper-def.cc
lily/paper-score.cc
lily/performance.cc
lily/property-engraver.cc
lily/repeat-engraver.cc
lily/rest-collision.cc
lily/rhythmic-column-engraver.cc
lily/score-column.cc [deleted file]
lily/score-element.cc
lily/score-engraver.cc
lily/score.cc
lily/script-column.cc
lily/script.cc
lily/side-position-interface.cc
lily/slur.cc
lily/spacing-engraver.cc
lily/spacing-spanner.cc
lily/span-bar.cc
lily/span-score-bar-engraver.cc
lily/staff-margin-engraver.cc
lily/stem.cc
lily/text-engraver.cc
lily/text-item.cc
lily/tie.cc
lily/timing-translator.cc
lily/tuplet-engraver.cc
lily/tuplet-spanner.cc
lily/volta-spanner.cc
lily/warn.cc
ly/declarations.ly
ly/engraver.ly
make/out/lilypond.lsm
make/out/lilypond.spec
mf/feta-bolletjes.mf
mf/feta-generic.mf
mf/feta-klef.mf
midi2ly/include/midi2ly-global.hh
midi2ly/main.cc
midi2ly/mudela-voice.cc
po/de.po
po/fr.po [new file with mode: 0644]
po/it.po
po/lilypond.pot
po/nl.po
scm/generic-property.scm
scm/lily.scm
scripts/convert-mudela.py
scripts/mudela-book.py
scripts/musedata2ly.py
stepmake/stepmake/generic-targets.make
stepmake/stepmake/metafont-rules.make
tex/titledefs.tex

index 3c9a62d947bc1a8989934be2fbf8dbe509cc8777..04c8fae7109a3627ff6b2474c5d196782242bdd1 100644 (file)
@@ -52,7 +52,8 @@ list is alphabetically ordered.
    * Alexandre Oliva <oliva@dcc.unicamp.br>,
      `http://sunsite.unicamp.br/~oliva/'     testing
 
-   * Francois Pinard <pinard@iro.umontreal.ca>,     parts of
+   * Francois Pinard <pinard@iro.umontreal.ca>,
+     `http://www.iro.umontreal.ca/~pinard/'     parts of
      Documentation/Vocab*, started internationalization stuff
 
    * Stephen Peters <portnoy@ai.mit.edu>, pdfTeX support
diff --git a/CHANGES b/CHANGES
index fe17e324c713d3933fdb6bbbd474fa1d0cb93e71..44adce0ac934efb5d949fa2cac1b5a59b258f34a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -8,12 +8,57 @@
 1.3.17.jcn1
 ===========
 
-* Bugfix: multi-measure rest: #measures (even more scm2int/int2scm mixups!)
+* Fixed bug that made multi-measure rest barnumber counts go wild.
+(even more scm2int/int2scm mixups!)
 
 * mutopia/J.S.Bach/pa.ly: organ score (for my father)
 
 * small fix to mutopia/J.S.Bach/Duette/violino-ii.ly
 
+1.3.17.hwn2
+===========
+
+* Remove Paper_def calls in bezier-bow.cc
+
+* Remove data members of Tuplet_spanner,  Volta_spanner
+
+* hang_on_clef, property hangOnClef removed
+
+* Bar::type_str_ mode into element property `glyph'. Use a Scheme
+function to determine breaking behavior.
+
+* More Scheme typechecking.
+
+* Be strict about the difference between strings and symbols for conversion.
+
+* Fixed bug that made 1st line offset to right fixed. Bugfix courtesy
+Laurent Martelli.
+
+* Partial French translation, courtesy Laurent Martelli.
+
+* Small corrections in NL translation. 
+
+1.3.17.hwn1
+===========
+
+* Added mensural note heads (noteHeadStyle = "mensural") Additionally,
+we have a longa note head.  noteHeadStyle = "harmonic" is not
+supported anymore. (for now, that is)  
+
+* Reference manual update. Document \properties with examples
+
+* fix mudela-book --help
+
+* Use element properties for Text_item::text_str_, Clef_item::symbol_,
+Key_item::c0_position_
+
+* Clef_engraver general cleanup. Use alists (\property
+supportedClefTypes, clefPitches) for clef types.
+
+* Use progress_indication () for progress. Don't include <iostream.h> directly 
+Don't include <string.h>, <math.h> from headers.
+
+
 1.3.16.hwn1
 ===========
 
index dab2cc587d9c7d7bfed37cc11177a33ccdb1c292..b84760bfec5ea2bfbad30e65ea736a6ebb4c6460 100644 (file)
@@ -23,7 +23,7 @@ Rests.  Note that the dot of 8th, 16th and 32nd rests rest should be
 next to the top of the rest.  All rests except the whole rest are
 centered on the middle staff line.  
 
-@mudelafile{rest.fly}
+@mudelafile{rest.ly}
 
 Note head shapes are settable.  The stem endings should be adjusted
 per note head.  If you want different note head styles on one stem,
index a9969ccd58ef9d79ac91bf638bf056b84fe69bc1..950c41a7fa2c76f66e311f4ae48ea70529281412 100644 (file)
@@ -55,6 +55,7 @@ list is alphabetically ordered.
     @uref{http://sunsite.unicamp.br/~oliva/}
     testing
 @item @email{pinard@@iro.umontreal.ca, Francois Pinard},
+    @uref{http://www.iro.umontreal.ca/~pinard/}
     parts of Documentation/Vocab*, started internationalization stuff
 @c urg: @c,{} in @email{} barfs.
 @item @email{portnoy@@ai.mit.edu,Stephen Peters}, pdfTeX support
index 76f89acb850a259bc31bec029c90b720ab421774..bafaf66fbbc9eed48de307b81f894593c053b69b 100644 (file)
@@ -4,9 +4,15 @@ Properties are Scheme values, so they have a type.  The type of a
 property is listed in parentheses after the property name.
 
 @macro propertytype{t}
- (/t/)
+ (\t\)
 @end macro
 
+@table @samp
+  @item @code{Generic_property_list} Defines names and types for
+generic properties. These are properties than can be plugged into the
+backend directly. See the init file @file{generic-property.scm} for
+details.  For internal use only.
+
 @cindex properties!Lyrics
 
 @table @samp
@@ -30,8 +36,7 @@ property is listed in parentheses after the property name.
     @code{diamond}, @code{harmonic}, @code{transparent}, and @code{""}. 
     They are shown in that order below.
 
-    @mudela[center]
-
+    @mudela[center,verbatim]
       \score {
         \notes { 
           \property Staff.barNonAuto = 1
@@ -60,10 +65,14 @@ property is listed in parentheses after the property name.
 
  
 @table @samp  
-  @item @code{stemStyle}@indexcode{stemStyle} @propertytype{string}
+  @item @code{stemStyle}@indexcode{flagStyle} @propertytype{string}
     By default set to @code{"grace"} meaning that all unbeamed 
     notes with flags are typeset with a slash through the flag. 
     Setting to @code{""} gives standard flags.
+
+@mudela[verbatim]
+c'8 \property Voice.flagStyle = "grace" c'8
+@end mudela
 @end table
 
 
@@ -88,17 +97,19 @@ property is listed in parentheses after the property name.
     below the staff.  This property does not override explicit
     directions marked with `@code{^}' or `@code{_}' in the mudela file.
     
-  @item @code{noAutoBeaming}@indexcode{beamAuto}  
+  @item @code{noAutoBeaming}@indexcode{beamAuto}  @propertytype{boolean}
     If set to 1 then beams are not generated automatically.
 
-  @item @code{beamAutoEnd}@indexcode{beamAutoEnd}  
+  @item @code{beamAutoEnd}@indexcode{beamAutoEnd}  @propertytype{?}
     Specifies when automatically generated beams can end.  See
     section XREF-autobeam [FIXME].
 
-  @item @code{beamAutoBegin}@indexcode{beamAutoBegin}  
+  @item @code{beamAutoBegin}@indexcode{beamAutoBegin}  @propertytype{?}
     Specifies when automatically generated beams can start.  See
     section XREF-autobeam [FIXME].
 
+
+[outdated FIXME]
   @item @code{beamQuantisation}@indexcode{beamQuantisation} @propertytype{symbol}
     Set to @code{\none} for no quantization.  Set to @code{\normal} to
     quantize position and slope.  Set to @code{\traditional} to avoid
@@ -122,18 +133,25 @@ property is listed in parentheses after the property name.
     the staff.
 
   @item @code{dynamicStyle}@indexcode{dynamicStyle} @propertytype{string}
-    Set the text style for dynamics.  
+    Set the text style for dynamics.
 
   @item @code{fontSize}@indexcode{fontSize} @propertytype{number}
     Can be used to select smaller font sizes for music.  The normal
     font size is 0, and the two smaller sizes are -1
     and -2.
 
+@mudela[verbatim]
+c''16 \property Staff.fontSize = -2 c''16
+@end mudela
+
    @item @code{forceHorizontalShift}@indexcode{forceHorizontalShift}  
     Force horizontal shift for collision resolution.  It overrides
     automatic collision resolution.  The value is the shift amount
     expressed in @code{note_width}, as set in the paper section.
 
+@mudelafile[verbatim]{force-hshift.sly}
+
+
 [FIXME: this should be moved]
 
 Lilypond always arranges note heads on alternate sides of a stem (that
@@ -164,7 +182,7 @@ done, with values of @code{horizontalNoteShift} printed over and under
 the notes. In this case the chords are just simple notes.
 
 @c URG : mudela book bug.
-@mudela[singleline]
+@mudela[singleline,verbatim]
 \score {
         \notes \context Staff <
                \context Voice  = VA { \stemup f''4^"0" }
@@ -196,14 +214,14 @@ Then you can set the force property to a suitable value before each note
 that really needs it (unisons and seconds), and reset it to 0.0 after
 the note.  
 
-  @item @code{horizontalNoteShift}@indexcode{horizontalNoteShift}  
+  @item @code{horizontalNoteShift}@indexcode{horizontalNoteShift}  @property{integer}
     Enable LilyPond to shift notes horizontally if they collide with
     other notes.  This is useful when typesetting many voices on one
     staff.  The identifier @code{\shift}@keyindex{shift} is defined to
     enable this.  Traditionally, the outer chords (the upmost and
     downmost voices), should have no @code{horizontalNoteShift}.
 
-  @item @code{markScriptPadding}@indexcode{markScriptPadding}  
+  @item @code{markScriptPadding}@indexcode{markScriptPadding}  @propertytype{number}
     Determines the extra space added between the mark and the closest
     staff line or note.
 
@@ -224,7 +242,12 @@ the note.
     Currently, the standard layout @code{""} and mensural notation
     @code{"mensural"} are available. Mensural rests of duration
     32 or shorter are not available.
-    
+@mudela[verbatim]
+r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 
+\property Staff.restStyle = "mensural"
+r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 
+@end mudela
+
   @item @code{scriptHorizontal}@indexcode{scriptHorizontal} @propertytype{boolean}
     Put scripts left or right of note heads.  Support for this is
     limited.  Accidentals will collide with scripts.
@@ -237,15 +260,24 @@ the note.
     @code{\slurboth}@keyindex{slurboth} are available.
 
   @item @code{slurDash}@indexcode{slurDash} @propertytype{number}
-    Set to 0 for normal slurs, 1 for dotted slurs, and a
+    Set to NIL for normal slurs, 1 for dotted slurs, and a
     larger value for dashed slurs.  Identifiers
     @code{\slurnormal}@keyindex{slurnormal} and
     @code{\slurdotted}@keyindex{slurdotted} are predefined to set the
     first two settings.
 
+@mudela[verbatim]
+               c4( )d
+               \property Voice.slurDash = 3
+               c ( )e
+@end mudela            
+
 @item @code{stemLength}@indexcode{stemLength}  
     Set length of stems.  Unit is `@code{interline}/2', so
     @code{stemLength} defaults to 7.
+@mudela[verbatim]
+g''4 \property Voice.stemLength = #14  g4 \property Voice.stemLength = #3 g4  g,,4  
+@end mudela
 
   @item @code{stemLeftBeamCount}@indexcode{stemLeftBeamCount} @propertytype{integer}
     Specify the number of beams to draw on the left side of the next
@@ -256,6 +288,7 @@ the note.
     Specify the number of beams to draw on the right side of the next
     note.  Overrides automatic beaming.  The value is only used once,
     and then it is erased.
+
   @item @code{tieVerticalDirection}@indexcode{tieVerticalDirection} @propertytype{direction}
     Set to @code{\free} for free choice of tie direction, set to
     @code{\up} to force ties up, set to @code{\down} to force ties
@@ -266,14 +299,19 @@ the note.
     half-steps to transpose by.
 
   @item @code{textEmptyDimension}@indexcode{textEmptyDimension} @propertytype{boolean}
-    If set to 1 then text placed above or below the staff is
-    assumed to have zero width.
-  
+    If set to true then text placed above or below the staff is
+    assumed to have zero width.  @code{fatText} and @code{emptyText}
+are predefined settings.
+
+@mudela[verbatim]
+c4^"foo"  \emptyText c4^"foo" c4
+@end mudela
+
   @item @code{textStyle}@indexcode{textStyle} @propertytype{string}
     Set the text style for superscripts and subscripts.  See above
     for list of text styles.
 
-  @item @code{textScriptPadding}@indexcode{textScriptPadding}  
+  @item @code{textScriptPadding}@indexcode{textScriptPadding}  @propertytype{number}
     Determines the extra space added between superscripted resp.
     subscripted text and the closest staff line or note.
 
@@ -292,8 +330,9 @@ the note.
     @code{\down} to force them below the staff, @code{\up} to force
     them above, or @code{\free} to let LilyPond decide.
 
-  @item @code{tupletVisibility}@indexcode{tupletVisibility}  (number) [FIXME]
-    Determines whether tuplets of notes are labelled.  Setting
+  @item @code{tupletVisibility}@indexcode{tupletVisibility} @propertytype{number}
+    [deprecate this, FIXME]
+    Determines whether tuplets of notes are labeled.  Setting
     to 0 shows nothing; setting to 1 shows a number;
     setting to 2 shows a number and a bracket if there is no
     beam; setting to 3 shows a number, and if there is no beam
@@ -309,7 +348,7 @@ the note.
 @table @samp
  
   @item @code{barNonAuto}@indexcode{barNonAuto} @propertytype{boolean}
-    If set to 1 then bar lines will not be printed
+    If set to true then bar lines will not be printed
     automatically; they must be explicitly created with @code{\bar}
     keywords.  Unlike with the @code{\cadenza} keyword, measures are
     still counted.  Bar generation will resume according to that
@@ -325,11 +364,16 @@ the note.
   @item @code{barSize}@indexcode{barSize}  
     Specify the height of the bar lines if it should be different
     than the staff height.
+@mudela[verbatim]
+c1 c1 \property Staff.barSize = 20 c1 c1 
+@end mudela
 
   @item @code{barAtLineStart}@indexcode{barAtLineStart} @propertytype{boolean}
-    Set to 1 to produce a bar line after the clef at the start
+    Set to true to produce a bar line after the clef at the start
     of each line (but not at the beginning of the music).
 
+       [BROKEN]
+
   @item @code{clefStyle}@indexcode{clefStyle} @propertytype{string}
     Determines how clefs are typeset.  If set to @code{transparent},
     the clefs are not printed at all, if set to
@@ -337,17 +381,20 @@ the note.
     typeset with a full size clef.  By default, clef changes are
     typeset in smaller size.
 
-  @item @code{createKeyOnClefChange}@indexcode{createKeyOnClefChange} @propertytype{boolean}
-    Set to a nonempty string if you want key signatures to be printed
-    when the clef changes.  Set to the empty string if you do not
-    want key signatures printed.
+  @item @code{supportedClefTypes}@indexcode{supportedClefTypes} @propertytype{alist}
 
-  @item @code{createInitdefaultClef}@indexcode{createInitdefaultClef} @propertytype{boolean}
-    Specify whether clefs are created on default? @propertytype{Doesn't seem to
-    do anything.}
+       Clef settings supported. The value is an association list clef
+descriptions indexed by clef name (alto, baritone, etc.).  A clef
+description is a list with the glyph name, and the staff position
+where it should go. For internal use.
 
+  @item @code{clefPitches}@indexcode{clefPitches} @propertytype{alist}
+    Settings for the position of the central C, relative to this clef
+    symbol.  For internal use.
+   
   @item @code{defaultClef}@indexcode{defaultClef} @propertytype{string}
-    Determines the default clef.  See @code{\clef} keyword.
+       Clef setting to use when this context is created.  If unset,
+no clef is printed upon creation.
 
   @item @code{marginDirection}@indexcode{marginDirection} @propertytype{direction}
     Set to @code{\left} or @code{\right} to specify location of
@@ -365,13 +412,13 @@ the note.
     be printed only once and are in effect until overridden, possibly
     many measures later.
 
-  @item @code{staffLineLeading}@indexcode{staffLineLeading}  
+  @item @code{staffSpace}@indexcode{staffLineLeading}   @propertytype{number}  
     Specifies the distance (in points) between lines of the staff.
 
   @item @code{numberOfStaffLines}@indexcode{numberOfStaffLines} @propertytype{integer}
     Specifies the number of staff lines.  The default is 5.
 
-  @item @code{postBreakPadding}@indexcode{postBreakPadding}  
+  @item @code{postBreakPadding}@indexcode{postBreakPadding}   @propertytype{number}
     Extra space in points to be added after the clef, time signature
     and key signature on the staff.  Deprecated, do not use.
 
@@ -381,13 +428,13 @@ the note.
 
  
   @item @code{barAlways}@indexcode{barAlways} @propertytype{boolean}
-    If set to 1 a bar line is drawn after each note.
+    If set to true a bar line is drawn after each note.
 
   @item @code{defaultBarType}@indexcode{defaultBarType} @propertytype{string}
     Sets the default type of bar line. See Section XREF-barlines [FIXME] 
     for a list of available bar types.
 
-  @item @code{instrument}, @code{instr}
+  @item @code{instrument}, @code{instr} @propertytype{string}
     @indexcode{instrument}@indexcode{instr}  
     If @code{Staff_margin_engraver}
 @cindex Staff_margin_engraver
@@ -399,8 +446,8 @@ the note.
     is used to determine the instrument for MIDI output.
 
   @item @code{keyOctaviation}@indexcode{keyOctaviation} @propertytype{boolean}
-    If set to 1, then keys are the same in all octaves.  If set
-    to 0 then the key signature for different octaves can be
+    If set to TRUE, then keys are the same in all octaves.  If set
+    to FALSE then the key signature for different octaves can be
     different and is specified independently:
 
     @example
@@ -437,7 +484,7 @@ the note.
     The different time signature characters are shown below with its
     names:
 
-    @mudela[center]
+    @mudela[center,verbatim]
 
       \score {
         \notes\relative c'' {
@@ -488,15 +535,16 @@ the note.
 @cindex properties!GrandStaff
 
 @table @samp 
-  @item @code{alignmentReference}@indexcode{alignmentReference}  
+  @item @code{alignmentReference}@indexcode{alignmentReference}
+@propertytype{direction}
     Set to @code{\center} for vertical alignment reference point to be
     in the center of the vertical group.  Set to @code{\up} to put the
     reference point at the top of the group.
 
-  @item @code{maxVerticalAlign}@indexcode{maxVerticalAlign}  
+  @item @code{maxVerticalAlign}@indexcode{maxVerticalAlign}  @propertytype{number}
     Set the maximum vertical distance between staffs.
 
-  @item @code{minVerticalAlign}@indexcode{minVerticalAlign}  
+  @item @code{minVerticalAlign}@indexcode{minVerticalAlign}  @propertytype{number}
     Set the minimum vertical distance between staffs.  
 @end table
 
diff --git a/TODO b/TODO
index 3b12dcbfa3795db37231c803e9a5ccf151900d00..fba7831c56a5f24ba5cf6b0c7e6adbda63368e97 100644 (file)
--- a/TODO
+++ b/TODO
@@ -10,7 +10,13 @@ Grep -i for TODO, FIXME and ugh/ugr/urg.
 
 .* TODO
 . * use hash tabs iso. alist_ for elt property?
+. * tremolos.
+. * internationalize GUILE msgs.
+. * unbroken marks.
+. * put  property test  files in refman.
+. * fix slurdotted
 . * alignment within @itemize
+. * slur dashing.
 . * junk dstream output.
 . * agressive type-checking for SCM stuff.
 . * script columns
diff --git a/VERSION b/VERSION
index 931f17ee7600d668dbed43b95d400c5ece654363..50e55c927022406657847f1f5c9984406f6d5b60 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=17
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=18
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 630d3dd692e283c401d45b04f9b7b4e41a4ef4c0..d2667110a9b00e6bbdcc98c395613c7854bb60dd 100644 (file)
 #define REAL_HH
 
 
-#include <math.h>
 #include <limits.h>
 
 typedef double Real;
-const Real infinity_f = HUGE_VAL;
+extern const Real infinity_f;
 
 template<class T> inline T abs (T x)
 {
index b0bf9f8952980b466fec339dbc05a4a06162cdaf..16f6a81f049d219e2bd386d2d948f2e4588bfad0 100644 (file)
 #define STRING_HH
 
 
-#include <string.h>
-#include <iostream.h>
 #include "arithmetic-operator.hh"
 #include "fproto.hh"
 #include "string-handle.hh"
-
+class ostream;
 /* Libg++ also has a String class.  Programming errors can lead to
   confusion about which String is in use.  Uncomment the following if you have 
   unexplained crashes after mucking with String
@@ -213,13 +211,6 @@ inline bool operator!=(char const* s1,String s2) {
 
 IMPLEMENT_ARITHMETIC_OPERATOR (String, +);
 
-inline ostream &
-operator << (ostream& os, String d)
-{
-  d.print_on (os);
-  return os;
-}
-
-
+ostream &operator << (ostream& os, String d);
 
 #endif
index 83a8460fa6a17bec57eb58ec61721054a9100397..eb0ca98fc439816d5f5387c094f66868688d9fb2 100644 (file)
@@ -14,10 +14,8 @@ public:
     Text_record() { } // needed because of other ctor
 
     /// report an error in this line.
-    void message (String s) {
-       cerr << '\n'<< filename << ": "<< line_no << s << "\n";
-    }         
-    String operator[](int j) {
+    void message (String s);
+      String operator[](int j) {
        return Array<String>::operator[](j);
     }
 
index d68c75a2b84e4e2d07951f98d0ee7ef086bc37dd..53c103c7ee05731cf935cda8c2c2e4fd6583cd6d 100644 (file)
@@ -60,12 +60,8 @@ public:
     return line_no;
   }
 
-  ~Text_stream(){
-    if (!eof_b()) 
-      cerr <<__FUNCTION__<< ": closing unended file";
-    
-    fclose (f);
-  }
+  ~Text_stream();
+  
 
   /// GNU format message.
   void message (String s); 
index b00e741330fdb768e85f7cf4d62adfa41bde56ff..03605d4135b171bf1eb82d4c95142931b82ac86f 100644 (file)
 #ifndef VIRTUAL_METHODS_HH
 #define VIRTUAL_METHODS_HH
 
-#include <typeinfo>
 #include "stdlib.h"            // size_t
 
-#define classname(class_ptr)   demangle_classname(typeid(*(class_ptr)).name())
+#define classname(class_ptr)   demangle_classname(typeid(*(class_ptr)))
 
 const char *
-demangle_classname (const char*);
+demangle_classname (type_info const &);
 
 /**
 
index d3c353891539c44870635dcb10afeea9dd64ef99..5a231ca6b2665aa524c2ee5603f759d734e41f74 100644 (file)
@@ -4,6 +4,7 @@
    (c) 1993--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
  */
 
+#include <math.h>
 
 #include "polynomial.hh"
 
index 15c576c686494a9beadb7fcb6689252b6f75dc97..29663fe20462e2f12400bfc5662dd35d81eace9e 100644 (file)
@@ -5,6 +5,7 @@
 
   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
+#include <math.h>
 #include <stdlib.h>
 #include "rational.hh"
 #include "string.hh"
diff --git a/flower/real.cc b/flower/real.cc
new file mode 100644 (file)
index 0000000..a043b98
--- /dev/null
@@ -0,0 +1,4 @@
+#include <math.h>
+#include "real.hh"
+
+const Real infinity_f = HUGE_VAL;
index c24cc27ec92280e38041f052f44e11fe0d678ee4..ae1aa8658c4cc2af5d92e87b5e6efcc19a374075 100644 (file)
@@ -1,10 +1,12 @@
+#include <typeinfo>
 #include <ctype.h>
 #include "virtual-methods.hh"
 
 
 const char *
-demangle_classname (char const *s)
+demangle_classname (type_info const &t)
 {
+  char const *s = t.name();
   while (isdigit (*s))
     s++;
   return s;
index 48d7feaec25c134facb7c994bc27b31bf865488e..a5d0e2169d1cb5a863a659ff6f2246218c29eb5a 100644 (file)
@@ -12,7 +12,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
-
+#include <iostream.h>
 #include <assert.h>
 #include <string.h>
 #include <stdarg.h>
@@ -402,3 +402,12 @@ String::value_f () const
   return String_convert::dec2_f (*this);
 }
 
+ostream &
+operator << (ostream& os, String d)
+{
+  d.print_on (os);
+  return os;
+}
+
+
index e59748f665629698ff945a7ee210ed980650e5d2..61fb0529d60d3fce2930b96774d3fe9417ab7a88 100644 (file)
@@ -1,4 +1,6 @@
+#include <iostream.h>
 #include "text-db.hh"
+
 bool
 Text_db::eof_b ()
 {
@@ -49,3 +51,8 @@ Text_db::get_record()
 }
 
 
+void
+Text_record::message (String s)
+{
+  cerr << '\n'<< filename << ": "<< line_no << s << "\n";
+}             
index 737b41196075b6487944aa75f4097e46b486a4b3..cb88bcd498165d5db03eff0170050c90c5b524cf 100644 (file)
@@ -1,3 +1,4 @@
+#include <iostream.h>
 #include "text-stream.hh"
 
 Text_stream::Text_stream (String fn)
@@ -39,3 +40,11 @@ Text_stream::eof_b ()
       // !pushback.size () && 
       feof (f);
 }
+
+Text_stream::~Text_stream()
+{
+    if (!eof_b()) 
+      cerr <<__FUNCTION__<< ": closing unended file";
+    
+    fclose (f);
+  }
index 2814b8dfaa62b36a6bbd854fd0b1ac63fb33ff11..2ea52dadf89f1219313ff3fe773e1e16da1e9a41 100644 (file)
@@ -4,7 +4,7 @@ depth = ..
 
 SUBDIRS=test bugs tutorial
 
-examples=praeludium-fuga-E  star-spangled-banner paddy
+examples=trip  star-spangled-banner paddy
 flexamples=
 
 LOCALSTEPMAKE_TEMPLATES=mutopia
index 9f8c70c30aeabeebc2955552eb3102ac970f3e4c..c6401107773c795afde48ab899dbcb4cf9e706b4 100644 (file)
@@ -27,6 +27,13 @@ FontBody=    \notes\transpose c''{
                e8_. g'8-> e16^^ g'16_^ 
                e32 _| g'32^| g''32-\ltoe g''32-\lheel
                e64-\rtoe g'64-\rheel c4... |
+\context Voice = mensural \relative c'' {
+\property Voice . noteHeadStyle = "mensural"
+\property Voice. stemCentered = ##t
+c\maxima*1/8
+c\longa*1/4 c\breve*1/2 c1 c2 c4 c8 
+}
+                       \property Voice . noteHeadStyle = "harmonic"
 
                \transpose c'{
                        \time 4/4;
@@ -35,7 +42,6 @@ FontBody=     \notes\transpose c''{
                        c1^"1" d2^"2" e4^"3"
                        \property Voice . noteHeadStyle = "cross"
                                                 f4^"4"
-                       \property Voice . noteHeadStyle = "harmonic"
                                                  g4^"5"
                        \property Voice . noteHeadStyle = ""
                        % Music to the Martians!
diff --git a/input/test/force-hshift.fly b/input/test/force-hshift.fly
deleted file mode 100644 (file)
index c484958..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-
-\context Staff <
-       \context Voice = VA {
-               \property Voice.forceHorizontalShift = "0.1"
-               % \stemup \shifton
-               \property Voice.verticalDirection=1 
-                       \property Voice.horizontalNoteShift=1
-               <g' d'>
-       }       
-
-       \context Voice = VB {
-               %\stemdown \shifton
-               \property Voice.verticalDirection=-1 
-                       \property Voice.horizontalNoteShift=1
-               \property Voice.forceHorizontalShift = #-0.1
-               <bes f'>
-       }
->
diff --git a/input/test/force-hshift.sly b/input/test/force-hshift.sly
new file mode 100644 (file)
index 0000000..ebe65f9
--- /dev/null
@@ -0,0 +1,16 @@
+
+\context Staff <
+       \context Voice = VA {
+               \property Voice.forceHorizontalShift = #0.1
+               \stemup
+                       \property Voice.horizontalNoteShift=1
+               <g' d'>
+       }       
+
+       \context Voice = VB {
+               \stemdown
+                       \property Voice.horizontalNoteShift=1
+               \property Voice.forceHorizontalShift = #-0.1
+               <bes f'>
+       }
+>
index 2ea3c430255c9830ad80a9529d51d6e246b956ec..8c0580921580706211d8dc7459f3ac63883b6af6 100644 (file)
@@ -6,7 +6,7 @@ c4 c2 c8  c16 c16  c1
 c4 c2 c8  c16 c16  c1
 \property Voice.noteHeadStyle = "cross"
 c4 c2 c8  c16 c16  c1
-\property Voice.noteHeadStyle = "harmonic"
+\property Voice.noteHeadStyle = "mensural"
 c4 c2 c8  c16 c16  c1
 
    \context Voice <
@@ -17,12 +17,16 @@ c4 c2 c8  c16 c16  c1
       { \property Thread.noteHeadStyle = "" a16  }
     
     \context Thread = TC
-      { \property Thread.noteHeadStyle = "harmonic" d16 }
+      { \property Thread.noteHeadStyle = "mensural" d16 }
     
   >
- \context Voice <\context Thread = TA { c4 c4 }
+
+  
+   \context Voice <\context Thread = TA {
+   \property Thread.noteHeadStyle = #'()
+   c4 c4 }
 \context Thread = TB {
-  \property Thread.noteHeadStyle = "harmonic"
+  \property Thread.noteHeadStyle = "mensural"
   c'4 \stemdown c
 } >
 
diff --git a/input/test/rest.fly b/input/test/rest.fly
deleted file mode 100644 (file)
index a6e4e16..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-\time 4/4;
-r \longa * 1/4  r\breve * 1/2 
-r1 r2 r4 r8 r16 r32 r64 r128 r128
-\time 6/4;
-r1. r2. r4. r8. r16. r32. r64. r128. r128.
diff --git a/input/test/rest.ly b/input/test/rest.ly
new file mode 100644 (file)
index 0000000..1396e8f
--- /dev/null
@@ -0,0 +1,7 @@
+\score { \notes {
+       \time 4/4;
+r \longa * 1/4  r\breve * 1/2 
+r1 r2 r4 r8 r16 r32 r64 r128 r128
+\time 6/4;
+r1. r2. r4. r8. r16. r32. r64. r128. r128.
+}}
index a78d48d6aa5bbff7660988847f75c6e2bb494f23..9bd08cd0368de5b3786ec70501798c9f125179dd 100644 (file)
@@ -2,8 +2,10 @@
 \score {
 \notes {
 \relative c'' {
+\property Voice . noteHeadStyle = "mensural"
 \property Voice. stemCentered = ##t
-\property Voice . noteHeadStyle = "harmonic"
-c4 c4 c8 c8 }
+c\maxima*1/8
+c\longa*1/4 c\breve*1/2 c1 c2 c4 c8 
+}
 }
 }
index dbc7cd9ac42185fc55b601248a3edc08542e3b4d..9b4e534c6e304fc98b8000e1c6338358b2804b03 100644 (file)
@@ -1,33 +1,11 @@
 \header {
-  filename =    "praeludium-fuga-E.ly";
-  title =       "praeludium and fuga in E-major";
-  opus =        "BWV 566";
-  composer =    "Johann Sebastian Bach (1685-1750)";
+  title =       "Trip";
   enteredby =   "JCN";
   copyright =   "public domain";
 }
-%{
-  description
 
-  Praeludium 3 bar excerpt,
-       2nd fuga transposed subject -- 4 bar excerpt. 
-        We try to imitate the Griepenkerl/Keller edition which
-       gives the best approximation to Bach's original layout
-%}
-%{
- Tested Features:
- purpose of this file is testing: 
-   * real-life collisions
-   * multi-voice input --- splitting?
-   * organ staff...
-%}
 
-\version "1.3.4";
-
-
-
-praeludium_commands = \notes {
-}
+% todo: clef ch .
 
 praeludiumRight =  \notes {
    \key e;
@@ -42,12 +20,6 @@ praeludiumRight =  \notes {
       a' ~ [a16 gis a b] \shifton dis,4 cis ~ |
       [cis8 dis16 ais] bis4 cis r8 b }
     \context Voice = IV \relative c'' {
-
-      %\stemup
-      %{
-      this is a diversion from the Griepenkerl/Keller
-       edition; a hack to avoid collisions
-      %}
       \stemdown
       \shifton s4 gis }
       
@@ -69,7 +41,12 @@ praeludiumLeft = \notes \relative c {
   \context Staff <
     \context Voice = two { r4 }
     \context Voice = one { \stemup s4 dis' cis cis ~ |
-      [cis8 ( a \translator Staff = treble  \stemdown \shifton d ) cis]
+      [cis8
+         (
+      a \translator Staff = treble  \stemdown \shifton d
+         )
+
+      cis]
       \translator Staff = bass 
       \shiftoff
       [bis gis] cis4 |
@@ -77,11 +54,14 @@ praeludiumLeft = \notes \relative c {
     \context Voice = one { \stemup bis2 }
     \context Voice = three {
     \property Voice.dynamicDirection  = \down
-    \stemup \shifton r4 gis ~ [gis8 \< gis] ~ \stemdown \shiftoff gis4 |
-      a4. fis8 \! gis4. a8 ~ |
-      a4 gis4 gis r8 gis }
-%    { \stemup \shifton s4 fis4 e}
-% a quick hack to avoid some collisons
+    \stemup \shifton r4 gis ~ [gis8
+      \<
+
+     gis] ~ \stemdown \shiftoff gis4 |
+     a4. fis8
+       \!
+     gis4. a8 ~ |
+     a4 gis4 gis r8 gis }
     \context Voice = four { \stemdown \shifton s4 fis4 e}
     \context Voice = two { \stemdown s4 dis4 cis4 }
   > |
@@ -90,13 +70,11 @@ praeludiumLeft = \notes \relative c {
 
 
 
-fugaII_commands = \notes{
-  \time3/4;
-}
 
 fugaIIRight = \notes   \relative c''   {
   \key e;              % E-major
   \clef violin;
+  \time3/4;
 
   %15
   \context Staff <
@@ -142,6 +120,8 @@ fugaIIRight = \notes   \relative c''   {
   %19
 }
 
+gracetest = \notes \grace { [c16 ( cis dis] }
+
 fugaIILeft = \notes {
   \key e;
   \clef bass;
@@ -149,7 +129,7 @@ fugaIILeft = \notes {
   %15
   \context Staff < 
     \context Voice = one { \stemdown
-    \grace { [c16 ( cis dis] }
+    \gracetest
     \relative b, < )b2 dis fis a b cis dis> \stemup ais4 |
       b2 b4 }
     \context Voice = two { \stemdown s2 e4 |
@@ -193,9 +173,12 @@ fugaIIPedal = \notes \relative c {
   %13
   r4 fis,4-\ltoe e4.-\lheel e'8-\rheel | 
   fis4.-\rtoe fis8-\rtoe fis4-\rtoe [e8-\ltoe a-\rtoe] | 
-  dis,4-\ltoe gis-\rtoe [cis,8-\ltoe( b!-\lheel ais-\rtoe gis-\ltoe ~ ] |
-  %16
- \notes { gis8  r4. )c2 }
+  dis,4-\ltoe gis-\rtoe [cis,8-\ltoe
+    (
+     b!-\lheel ais-\rtoe gis-\ltoe ~ ] |
+      gis8  r4.
+    )
+      c2 
  \time 3/4;
 
   \fugaIIPedal }
index d159319a45002b98a1ef165bf577d35bc1e8625b..f2dc0a51b376f5d0a322081c9f059e20772fc515 100644 (file)
@@ -5,6 +5,7 @@
 
  (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
+#include <iostream.h>
 #include "proto.hh"
 #include "input.hh"
 #include "string.hh"
index 89608e47680fd02d5c11f6cabbb509acb3119c4e..4b6e906139d10efad678b1e405e53738c6d815c9 100644 (file)
@@ -33,13 +33,11 @@ All_font_metrics::find_afm (String name)
       path = search_path_.find (path);
       if (path.empty_b ())
        return 0;
-      
-      *mlog << "[" << path;
+      progress_indication ("[" + path);
       Adobe_font_metric * afm_p = read_afm_file (path);
 
       afm_p->name_str_ = name;
-      
-      *mlog << "]" << flush ;
+      progress_indication ("]");
 
       afm_p_dict_[sname] = afm_p->self_scm_;
       scm_unprotect_object (afm_p->self_scm_);
@@ -80,12 +78,10 @@ All_font_metrics::find_tfm (String name)
       path = search_path_.find (path);
       if (path.empty_b ())
        return 0;
-
-      *mlog << "[" << path;
+      progress_indication ("[" + path);
       Tex_font_metric  * tfm_p = Tex_font_metric_reader::read_file (path);
       tfm_p->name_str_ = name;
-
-      *mlog << "]" << flush ;
+      progress_indication ("]");
 
       tfm_p_dict_[sname] = tfm_p->self_scm_;
       scm_unprotect_object (tfm_p->self_scm_);      
index e71f371a3ff75b926adf81c14533d76a4dc1900b..80abf80772dc91e5438704bbab0779606c18a964 100644 (file)
@@ -25,7 +25,6 @@ Atom::Atom(SCM s)
 void
 Atom::fontify (Font_metric * met)
 {
-
   SCM desc = ly_quote_scm (met->description ());
   SCM font_switch = gh_list (ly_symbol2scm ("select-font"),
                             desc,
index a364995d4c0d6524e4ce216fc2f31bd332f2b1b8..45636011c048182d9a6a30caeb9e3c49f678c9be 100644 (file)
@@ -38,17 +38,19 @@ Bar_engraver::create_bar ()
       SCM default_type = get_property ("defaultBarType", 0);
       if (gh_string_p (default_type))
        {
-         bar_p_->type_str_ = ly_scm2string (default_type);
+         bar_p_->set_elt_property ("glyph", default_type); // gu.h
        }
 
+#if 0
       /*
-       urg.  Why did I implement this?
-       */
+       urg.  Why did I implement this? And did I implement this so
+       clumsily?  */
       SCM prop = get_property ("barAtLineStart", 0);
       if (to_boolean (prop))
        {
          bar_p_->set_elt_property ("at-line-start", SCM_BOOL_T);
        }
+#endif
       announce_element (Score_element_info (bar_p_, 0));
     }
 }
@@ -73,11 +75,16 @@ Bar_engraver::request_bar (String requested_type)
     {
       return;
     }
-  else if (((requested_type == "|:") && (bar_p_->type_str_ == ":|"))
-    || ((requested_type == ":|") && (bar_p_->type_str_ == "|:")))
-    bar_p_->type_str_ = ":|:";
-  else
-    bar_p_->type_str_ = requested_type;
+
+  String current = ly_scm2string (bar_p_->get_elt_property ("glyph"));
+  
+  if ((requested_type == "|:" && current== ":|")
+    || (requested_type == ":|" && current == "|:"))
+    requested_type = ":|:";
+
+  
+  bar_p_->set_elt_property ("glyph",
+                           ly_str02scm (requested_type.ch_C ()));
 }
 
 void 
@@ -106,7 +113,7 @@ Bar_engraver::do_process_requests()
   if (which.length_i ())
     {
       create_bar();
-      bar_p_->type_str_ = which;
+      bar_p_->set_elt_property ("glyph",  ly_str02scm (which.ch_C ()));
     }
   
   if (!bar_p_)
index d2119562fe6f94cd1da9b6d1f3eebcede8bbeffd..8e39362e90cd46cbc0e0c5282c759fdef59a62cb 100644 (file)
@@ -34,7 +34,11 @@ Bar_number_engraver::do_process_requests ()
       !time->measure_position () && now_mom () > Moment (0))
     {
       create_items (0);
-      text_p_->text_str_ = to_str (gh_scm2int (bn));
+
+      // guh.
+      text_p_->set_elt_property ("text",
+                                ly_str02scm (to_str (gh_scm2int (bn)).ch_C()));
+                                
     }
 }
 
index c51d6611753c929ab97aba58d4223080adeb8a4e..bd85c3e6f2c73630db2508176f21a65420cc2da5 100644 (file)
@@ -22,7 +22,7 @@ Bar_script_engraver::Bar_script_engraver ()
 {
   axis_ = Y_AXIS;
   text_p_ =0;
-  hang_on_clef_b_ = false;
+
   visibility_lambda_ 
     = ly_eval_str ("non-postbreak-visibility");
 }
@@ -30,11 +30,6 @@ Bar_script_engraver::Bar_script_engraver ()
 void
 Bar_script_engraver::do_creation_processing ()
 {
-  SCM prop = get_property (type_ + "HangOnClef", 0);
-  if (to_boolean (prop))
-    {
-      hang_on_clef_b_ = true;
-    }
 }
 
 /*
@@ -73,21 +68,12 @@ Item*
 Bar_script_engraver::cast_to_interesting_item (Score_element *e)
 {
   Item * i =0;
-  if (hang_on_clef_b_)
-    {
-      Clef_item * c = dynamic_cast<Clef_item*> (e);
 
+  /*
+    should do type lookup: if (e ->is_type (hang_on_type))
+   */
+  i = dynamic_cast<Bar*> (e);
 
-      // urg.
-      if (c) //  && c->default_b_)
-       {
-         i = c;
-       }
-    }
-  else
-    {
-      i = dynamic_cast<Bar*> (e);
-    }
   return i;
 }
                                               
index 04214d4068f1d263ac824fff1e4cfd5d3e9d0da8..1fea0a1b3e25fbebee5221b26c905eb7e14a97ce 100644 (file)
 Bar::Bar ()
 {
   set_elt_property ("breakable", SCM_BOOL_T);
-  type_str_ = "|";
 }
 
-void
-Bar::do_print () const
-{
-#ifndef NPRINT
-  String s = type_str_;
-  DEBUG_OUT << "type = " << s;
-#endif
-}
 
 Real
 Bar::get_bar_size () const
@@ -40,52 +31,49 @@ Bar::get_bar_size () const
 
 Molecule*
 Bar::do_brew_molecule_p () const
-{    
-  Molecule *output = new Molecule (lookup_l ()->bar (type_str_, get_bar_size (), paper_l ()));
+{
+  String s = ly_scm2string (get_elt_property ("glyph"));
+  Molecule *output
+    = new Molecule (lookup_l ()->bar (s, get_bar_size (), paper_l ()));
   
   return output;
 }
 
-/**
-  Prescriptions for splitting bars.
-  TODO: put this in SCM.
- */
-static char const *bar_breaks[][3] ={
-  {":|", ":|:", "|:"},
-  {"|", "|", ""},
-  {"", "|s", "|"},
-  {"|", "|:", "|:"},
-  {"|.", "|.", ""},
-  {":|", ":|", ""},
-  {"||", "||", ""},
-  {".|.", ".|.", ""},
-  {"", "scorebar", "scorepostbreak"},
-  {"", "brace", "brace"},
-  {"", "bracket", "bracket"},  
-  {0,0,0}
-};
+
 
 void
 Bar::do_pre_processing ()
 {
-  for (int i=0; bar_breaks[i][0]; i++) 
+  SCM g = get_elt_property ("glyph");
+  SCM breakdir = gh_int2scm (break_status_dir ());
+  
+  if (gh_string_p (g))
     {
-      if (bar_breaks[i][1] == type_str_)
-       {
-         type_str_ = bar_breaks[i][break_status_dir ()+1];
-         break;
-       }
+      g = scm_eval (gh_list (ly_symbol2scm ("break-barline"),
+                            g,
+                            breakdir,
+                            SCM_UNDEFINED));
     }
-
-
+  else
+    {
+      g = SCM_UNDEFINED;
+    }
+  
+#if 0  
   if (remove_elt_property ("at-line-start") == SCM_BOOL_T      // UGR.
       && (break_status_dir () == RIGHT) && (type_str_ == ""))
     {
       type_str_ = "|";
     }
-
-  if (type_str_ =="")
-    set_empty (X_AXIS);
+#endif
+  
+  if (!gh_string_p (g))
+    {
+      set_elt_property ("transparent", SCM_BOOL_T);
+      set_empty (X_AXIS);      
+    }
+  else
+    set_elt_property ("glyph", g);
 }
   
 
index 13e43b22affe00d2c1e2952e81693206a0083e2a..e267368cd08b9f1652788f586dbb5d9bbd37b2b9 100644 (file)
@@ -66,8 +66,9 @@ Base_span_bar_engraver::acknowledge_element (Score_element_info i)
            }
          
          announce_element (Score_element_info (spanbar_p_,0));
-         if (spanbar_p_->type_str_.empty_b ())
-           spanbar_p_-> type_str_ = bar_l_arr_[0]->type_str_;
+         if (!gh_string_p (spanbar_p_->get_elt_property ("glyph")))
+           spanbar_p_-> set_elt_property ("glyph",
+                                          bar_l_arr_[0]->get_elt_property ("glyph"));
        }
     }
 }
index 9ca86078852e6f3e022f78f30cf55b4edd11c18f..cb5132932c2d9dd6e6413d5d4d880f49f902b650 100644 (file)
@@ -84,7 +84,7 @@ Beam_engraver::do_process_requests ()
     {
       if (beam_p_)
        {
-         reqs_drul_[START]->warning (_ ("Already have a Beam"));
+         reqs_drul_[START]->warning (_ ("Already have a beam"));
          return;
        }
 
index 51752dc3f7d4a651a24940bb6e85c21f7e2ae1e4..1daf73682b395abf745300f592038973e4ba448c 100644 (file)
@@ -14,6 +14,8 @@
     * move paper vars to scm
 
 */
+#include <math.h>              // tanh.
+
 #include "directional-element-interface.hh"
 #include "beaming.hh"
 #include "dimensions.hh"
index afdd951b8e587a9f1694afdc253e1af0f36691f7..318a328cb07c265c0d4d7b46a09ab7a7498f56a5 100644 (file)
@@ -12,7 +12,6 @@
 #include "bezier.hh"
 #include "dimensions.hh"
 #include "direction.hh"
-#include "paper-def.hh"
 #include "debug.hh"
 #include "main.hh"
 
@@ -39,20 +38,15 @@ translate (Array<Offset> &c, Offset o)
 }
 
 
-Bezier_bow::Bezier_bow (Paper_def* paper_l,
-                       Array<Offset> points, Direction dir)
+Bezier_bow::Bezier_bow (Array<Offset> points, Direction dir)
 {
-  paper_l_ = paper_l;
   dir_ = dir;
   encompass_ = points;
   to_canonic_form ();
-  
-  calc_default (0.0);
-  if (fit_factor () > 1.0)
-    {
-      calc_tangent_controls ();
-      blow_fit ();
-    }
+
+  rc_factor_ = 1.0;
+  height_limit_ = 1.0;
+  ratio_ = 1.0;
 }
 
 void
@@ -66,15 +60,19 @@ Bezier_bow::blow_fit ()
   curve_.check_sanity ();
 }
 
-
-
-
-
-
+void
+Bezier_bow::calculate ()
+{
+  calc_default (0.0);
+  if (fit_factor () > 1.0)
+    {
+      calc_tangent_controls ();
+      blow_fit ();
+    }
+}
 Bezier
 Bezier_bow::get_curve ()const
 {
-
   Bezier rv = curve_;
   if (dir_ == DOWN)
     {
@@ -138,13 +136,13 @@ Bezier_bow::calc_tangent_controls ()
     The curve will always be under line between curve_.control_0 -> curve_.control_1, so
     make it extra steep by slur_rc_factor
   */
-  Real rc_correct = paper_l_->get_var ("slur_rc_factor");
-  
+
+
   Drul_array<Real> angles;
   Direction d = LEFT;
   do
     {
-      maxtan[d] *= -d * rc_correct;
+      maxtan[d] *= -d * rc_factor_;
       angles[d] = atan (maxtan[d]);
     }
   while (flip(&d) != LEFT);
@@ -164,7 +162,7 @@ Bezier_bow::calc_tangent_controls ()
 
 
   // ugh: be less steep
-  rc3 /= 2*rc_correct;
+  rc3 /= 2*rc_factor_;
   
 
   Real c2 = -maxtan[RIGHT] * curve_.control_[3][X_AXIS];
@@ -241,11 +239,8 @@ Bezier_bow::calc_default (Real h)
 {
   Real pi = M_PI;
 
-  Real height_limit = paper_l_->get_var ("slur_height_limit");
-  Real ratio = paper_l_->get_var ("slur_ratio");
-
-  Real alpha = height_limit * 2.0 / pi;
-  Real beta = pi * ratio / (2.0 * height_limit);
+  Real alpha = height_limit_ * 2.0 / pi;
+  Real beta = pi * ratio_ / (2.0 * height_limit_);
 
   Offset delta (encompass_.top ()[X_AXIS] 
     - encompass_[0][X_AXIS], 0);
index ac43af288ec2aabf604775758585fe316ce986ef..2fbb65d3091af6fdf0e5e5bfa01ca33414b8b585 100644 (file)
@@ -58,9 +58,13 @@ Bow::curve_extent (Axis a) const
 Bezier
 Bow::get_curve () const
 {
-  Bezier_bow b (paper_l (),
-               get_encompass_offset_arr (), directional_element (this).get ());
-  
+  Bezier_bow b (get_encompass_offset_arr (), directional_element (this).get ());
+
+  b.ratio_ = paper_l ()->get_var ("slur_ratio");
+  b.height_limit_ = paper_l ()->get_var ("slur_height_limit");
+  b.rc_factor_ = paper_l ()->get_var ("slur_rc_factor");
+
+  b.calculate ();
   return b.get_curve ();
 }
 
index 8caac78f6008e2a4d146e6b79d77360a26069c80..60dce822e49c809c9c5b6304db8408c146449d34 100644 (file)
@@ -84,7 +84,7 @@ Break_align_item::do_pre_processing()
   symbol_list  = gh_cdr (scm_reverse (symbol_list));
   for (int i=0; i <elems.size()-1; i++)
     {
-      String sym_str = ly_scm2string (gh_car  (symbol_list));
+      String sym_str = ly_symbol2string (gh_car  (symbol_list));
       elems[i]->set_elt_property (sym_str,
                                  scm_cons (gh_double2scm (0),
                                            gh_double2scm (dists[i+1])));
index 5de0c8e5495bce25e17f9853bb2e24c14567a73b..152d95163e1f0ba6c7c08b149752f95370662309 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  clef.cc -- implement Clef_engraver
+  clef-engraver.cc -- implement Clef_engraver
 
   source file of the GNU LilyPond music typesetter
 
@@ -8,14 +8,9 @@
   Mats Bengtsson <matsb@s3.kth.se>
 */
 
-/*
-  CLEAN ME UP.
- */
-
 #include <ctype.h>
 #include "staff-symbol-referencer.hh"
 #include "bar.hh"
-#include "clef-engraver.hh"
 #include "clef-item.hh"
 #include "debug.hh"
 #include "command-request.hh"
 #include "note-head.hh"
 #include "key-item.hh"
 #include "local-key-item.hh"
+#include "array.hh"
+#include "engraver.hh"
+#include "direction.hh"
+
+/// where is c-0 in the staff?
+class Clef_engraver : public  Engraver {
+  Clef_item * clef_p_;
+  Clef_change_req * clef_req_l_;
+  void create_clef();
+  bool set_type (String);
+protected:
+  virtual void do_process_requests();
+  virtual void do_pre_move_processing();
+  virtual void do_creation_processing();
+  virtual void do_post_move_processing();
+  virtual bool do_try_music (Music*);
+  virtual void acknowledge_element (Score_element_info);
+public:
+  VIRTUAL_COPY_CONS(Translator);
+  int c0_position_i_;
+  int clef_position_i_;
+                               // junkme.
+  Direction octave_dir_;
+  SCM clef_glyph_;             // no need for protection. Always referenced somewhere else.
+   
+  Clef_engraver();
+};
+
 
 Clef_engraver::Clef_engraver()
 {
+  clef_glyph_ = SCM_EOL;
   clef_p_ = 0;
   clef_req_l_ = 0;
-  clef_type_str_ = "";
   c0_position_i_ = 0;
   clef_position_i_ = 0;
   octave_dir_ = CENTER;
-  create_default_b_ = true;
 }
 
 bool
@@ -51,55 +73,28 @@ Clef_engraver::set_type (String s)
   else
     octave_dir_ = CENTER;
 
-  bool found = false;
   SCM c = get_property ("supportedClefTypes",0);
-  for (; gh_pair_p(c); c = gh_cdr (c))
+  SCM p = get_property ("clefPitches", 0);
+  
+  if (gh_list_p (c))
     {
-      SCM entry = gh_car (c);
-      SCM name  = gh_car (entry);
-
-      if (ly_scm2string (name) != s)
-       continue;
+      SCM found = scm_assoc (ly_str02scm (s.ch_C()), c);
+      if (found == SCM_BOOL_F)
+       return false;
       
-      SCM glyph  = gh_cadr (entry);
-      SCM pos  = gh_caddr (entry);
-      
-      clef_type_str_ = ly_scm2string (glyph);
+      clef_glyph_  = gh_cadr (found);
+      SCM pos  = gh_caddr (found);
+
       clef_position_i_ = gh_scm2int (pos);
-      found = true;
-      break;
-    }
-    
-  if (!found)
-    {
-      switch(toupper (s[0]))
-       {
-       case 'F': 
-         clef_type_str_ = "bass";
-         break;
-       case  'G':
-         clef_type_str_ = "treble";
-         break;
-       case 'C': 
-         clef_type_str_ = "alto";
-         break;
-       default:
-         return false;
-       }
-      clef_position_i_ = 2 * (s[1] - '0') - 6;
+
+      found = scm_assoc (clef_glyph_, p);
+      if (found == SCM_BOOL_F)
+       return false;
+
+      c0_position_i_ = clef_position_i_ + gh_scm2int (gh_cdr (found));
     }
 
-  if (clef_type_str_ == "treble")
-    c0_position_i_ = clef_position_i_ - 4;
-  else if (clef_type_str_ == "alto")
-    c0_position_i_ = clef_position_i_;
-  else if (clef_type_str_ == "bass")
-    c0_position_i_ = clef_position_i_ + 4;
-  else
-    assert (false);
-      
   c0_position_i_ -= (int) octave_dir_ * 7;
-  
   return true;
 }
 
@@ -112,28 +107,21 @@ void
 Clef_engraver::acknowledge_element (Score_element_info info)
 {
   if (dynamic_cast<Bar*>(info.elem_l_)
-      && clef_type_str_.length_i())
-    {
-      bool default_clef = !clef_p_;
-      create_clef();
-      if(!default_clef)
-       clef_p_->set_elt_property("visibility-lambda",
-                                 ly_eval_str ("all-visibility"));
-    }
+      && gh_string_p (clef_glyph_))
+    create_clef();
 
   /* ugh; should make Clef_referenced baseclass */
   Item * it_l =dynamic_cast <Item *> (info.elem_l_);
   if (it_l)
     {
-      if (Note_head * h = dynamic_cast<Note_head*>(it_l))
+      if (dynamic_cast<Note_head*>(it_l)
+         || dynamic_cast<Local_key_item*> (it_l)
+         )
+         
        {
-         Staff_symbol_referencer_interface si (h);
+         Staff_symbol_referencer_interface si (it_l);
          si.set_position (int (si.position_f ()) + c0_position_i_);
        }
-      else if (Local_key_item *i = dynamic_cast<Local_key_item*> (it_l))
-       {
-         i->c0_position_i_ =c0_position_i_;
-       }
       else if (Key_item *k = dynamic_cast<Key_item*>(it_l))
        {
          k-> set_c_position (c0_position_i_);
@@ -144,14 +132,11 @@ Clef_engraver::acknowledge_element (Score_element_info info)
 void
 Clef_engraver::do_creation_processing()
 {
-  create_default_b_ = true;    // should read property.
-  SCM def = get_property ("createInitdefaultClef", 0);
+  SCM def = get_property ("defaultClef", 0);
   if (gh_string_p (def))
-    set_type (ly_scm2string (def));
-  
-  if (clef_type_str_.length_i ())
-    { 
-      create_clef();
+    {
+      set_type (ly_scm2string (def));
+      create_clef ();
       clef_p_->set_elt_property ("non-default", SCM_BOOL_T);
     }
 }
@@ -188,7 +173,7 @@ Clef_engraver::create_clef()
       clef_p_ = c;
     }
   Staff_symbol_referencer_interface si(clef_p_);
-  clef_p_->symbol_ = clef_type_str_;
+  clef_p_->set_elt_property ("glyph", clef_glyph_);
   si.set_position (clef_position_i_);
   if (octave_dir_)
     {
@@ -203,16 +188,7 @@ Clef_engraver::do_process_requests()
   if (clef_req_l_)
     {
       create_clef();
-    }
-  else if (create_default_b_)
-    {
-      SCM type = get_property ("defaultClef", 0);
-      if (gh_string_p (type))
-       set_type (ly_scm2string (type));
-      else
-       set_type ( "treble");
-      create_clef ();
-      create_default_b_ = false;
+      clef_p_->set_elt_property ("non-default", SCM_BOOL_T);
     }
 }
 
@@ -221,10 +197,13 @@ Clef_engraver::do_pre_move_processing()
 {
   if (clef_p_)
     {
+      if(to_boolean (clef_p_->remove_elt_property("non-default")))
+        clef_p_->set_elt_property("visibility-lambda",
+                                  ly_eval_str ("all-visibility"));
+      
       typeset_element (clef_p_);
       clef_p_ =0;
     }
-  create_default_b_ = false;
 }
 
 void
@@ -233,11 +212,6 @@ Clef_engraver::do_post_move_processing()
   clef_req_l_ = 0;
 }
 
-void
-Clef_engraver::do_removal_processing()
-{
-  assert (!clef_p_);
-}
 
 
 
index 4407b8767ea6a134b1cea9833948142be6043af6..5bdcfa8111775d9d797ffaec08729d9623fea1f5 100644 (file)
@@ -24,9 +24,19 @@ Clef_item::do_pre_processing()
   String style;
   if (gh_string_p (style_sym))
     style = ly_scm2string (style_sym);
-  
-  if (break_status_dir() != RIGHT && style != "fullSizeChanges")
-    symbol_ += "_change";
+
+  SCM glyph = get_elt_property ("glyph");
+  if (gh_string_p (glyph))
+    {
+      String s = ly_scm2string (glyph);
+       
+      if (break_status_dir() != RIGHT && style != "fullSizeChanges")
+       {
+         s += "_change";
+       }
+      s = "clefs-" +  s;
+      set_elt_property ("glyph", ly_str02scm (s.ch_C()));
+    }
   
   if (style == "transparent")  // UGH. JUNKME
     {
@@ -35,13 +45,6 @@ Clef_item::do_pre_processing()
     }
 }
 
-/*
-  JUNKME
-*/
-Clef_item::Clef_item()
-{
-  symbol_ = "treble";
-}
 
 void
 Clef_item::do_add_processing ()
@@ -59,7 +62,7 @@ Clef_item::do_add_processing ()
          
          pscore_l_->typeset_element (g);
       
-         g->text_str_ = "8";
+         g->set_elt_property ("text", ly_str02scm ( "8"));
          g->set_elt_property ("style", gh_str02scm ("italic"));
          g->set_parent (this, Y_AXIS);
          g->set_parent (this, X_AXIS);   
@@ -75,14 +78,4 @@ Clef_item::do_add_processing ()
     }
 }
 
-Molecule*
-Clef_item::do_brew_molecule_p() const
-{
-  Molecule*output = new Molecule (lookup_l ()->afm_find (String ("clefs-" + symbol_)));
-
-  return output;
-}
-
-
-
 
index 972846498a9e6a1be2692d9a144addab1aa45a04..ecd51f5d5b393e0a69733dfc069b597385a35ad1 100644 (file)
@@ -17,8 +17,7 @@
 
 Crescendo::Crescendo ()
 {
-  grow_dir_ =0;
-  dyn_b_drul_[LEFT] = dyn_b_drul_[RIGHT] =false;
+  set_elt_property ("dynamic-drul", gh_cons (SCM_BOOL_F, SCM_BOOL_F));
 }
 
 
@@ -29,18 +28,32 @@ Crescendo::do_brew_molecule_p () const
   Real absdyn_dim = paper_l ()-> get_var ("crescendo_shorten");
   Real extra_left =  get_broken_left_end_align ();
 
-  if (dyn_b_drul_[LEFT])
+  SCM dir = get_elt_property("grow-dir");
+  SCM dyns = get_elt_property ("dynamic-drul");
+
+  if (!isdir_b (dir) || !gh_pair_p (dyns))
+    {
+      set_elt_property ("transparent", SCM_BOOL_T);
+      return new Molecule;
+    }
+  
+  Direction gd = to_dir (dir);
+
+  bool dynleft= to_boolean (gh_car (dyns));
+  bool dynright = to_boolean (gh_cdr (dyns));
+  
+  if (dynleft)
     extra_left += absdyn_dim;
 
   
 
   Real width = spanner_length()- get_broken_left_end_align ();
 
-  if (dyn_b_drul_[LEFT])
+  if (dynleft)
     {
       width -= absdyn_dim;
     }
-  if (dyn_b_drul_[RIGHT])
+  if (dynright)
     {
       width -= absdyn_dim;
     }
@@ -59,11 +72,11 @@ Crescendo::do_brew_molecule_p () const
   } while (flip (&d) != LEFT);
   
 
-  bool continued = broken[Direction (-grow_dir_)];
+  bool continued = broken[Direction (-gd)];
   Real height = paper_l()->get_var ("crescendo_height");
   Real thick = paper_l ()->get_var ("crescendo_thickness");
 
-  const char* hairpin = (grow_dir_ < 0)? "decrescendo" :  "crescendo";
+  const char* hairpin = (gd < 0)? "decrescendo" :  "crescendo";
   Atom at  (gh_list (ly_symbol2scm (hairpin),
                     gh_double2scm (thick),
                     gh_double2scm (width),
index 03c769ec3234dcd5bb180bd522891fccacfc8e93..4d485e477facfbece487a0ca123f13c82f8b2148 100644 (file)
@@ -42,7 +42,7 @@ Duration::length_mom () const
 
   for (int d = dots_i_; d; d--)
     {
-      delta /= 2.0;
+      delta /= Moment (2);
       mom += delta;
     }
 
index 4560bc6c730208a72929129a079bda50590abd61..fe27ade94b64565db4b2e980b8bb54ac47f55900 100644 (file)
@@ -109,7 +109,8 @@ Dynamic_engraver::do_process_requests()
          String loud = absd->text_str_;
 
          text_p_ = new Text_item;
-         text_p_->text_str_ =  loud; // ugh
+         text_p_->set_elt_property ("text",
+                                    ly_str02scm (loud.ch_C()));
          text_p_->set_elt_property ("style", gh_str02scm ("dynamic"));
          text_p_->set_elt_property ("script-priority",
                                     gh_int2scm (100));
@@ -165,7 +166,10 @@ Dynamic_engraver::do_process_requests()
              cresc_req_l_ = span_l;
              assert (!new_cresc_p);
              new_cresc_p  = new Crescendo;
-             new_cresc_p->grow_dir_ = (span_l->span_type_str_ == "crescendo")  ? BIGGER : SMALLER;
+             new_cresc_p
+               ->set_elt_property ("grow-direction",
+                                   gh_int2scm ((span_l->span_type_str_ == "crescendo") ? BIGGER : SMALLER));
+             
              new_cresc_p->set_elt_property ("staff-support", SCM_BOOL_T);
 
 
@@ -192,9 +196,11 @@ Dynamic_engraver::do_process_requests()
 
       if (text_p_)
        {
-         cresc_p_->dyn_b_drul_[LEFT] = true;
+         index_set_cell (cresc_p_->get_elt_property ("dynamic-drul"),
+                         LEFT, SCM_BOOL_T);
          if (to_end_cresc_p_)
-           to_end_cresc_p_->dyn_b_drul_[RIGHT] = true;
+           index_set_cell (to_end_cresc_p_->get_elt_property ("dynamic-drul"),
+                           RIGHT, SCM_BOOL_T);
        }
     }
 }
index 610b9890ec062c21ca82fb4b8aa3d5e2bad1b968..85038b48d2fea90d26950ad840ed5af5adf70ef5 100644 (file)
@@ -72,16 +72,6 @@ Staff_info
 Engraver_group_engraver::get_staff_info() const
 {
   Staff_info inf = Engraver::get_staff_info();
-
-  for (Cons<Translator> *p = trans_p_list_.head_; p; p = p->next_)
-    {
-      if (!dynamic_cast <Engraver_group_engraver *> (p->car_))
-       {
-         Engraver * eng = dynamic_cast<Engraver*> (p->car_);
-         if (eng)
-           eng->fill_staff_info (inf);
-       }
-    }
   return inf;
 }
 
index 9728a4c0f265553823b6f94b7b73f0775c070ce0..a508197c239ebce36e13021f761ae30d4552b2ff 100644 (file)
@@ -19,6 +19,9 @@ Global_translator::add_moment_to_process (Moment m)
 {
   if (m  > final_mom_)
     return;
+
+  if (m < now_mom_ )
+    programming_error ("Trying to freeze in time.");
   
   for (int i=0; i <  extra_mom_pq_.size(); i++)
     if (extra_mom_pq_[i] == m)
index b8879bc45af8a50244c74dccb851fd41361e2000..d81f170214b7c79f8e77696ca3804ad478b0ee8e 100644 (file)
@@ -5,6 +5,7 @@
 
   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
+#include <math.h>              // rint
 
 #include "gourlay-breaking.hh"
 #include "column-x-positions.hh"
@@ -127,14 +128,15 @@ Gourlay_breaking::do_solve () const
       optimal_paths[break_idx].line_i_ = optimal_paths[prev].line_i_ + 1;
 
       if (! (break_idx % HAPPY_DOTS_I))
-       *mlog << "[" << break_idx << "]" << flush;
+       progress_indication (String ("[") + to_str (break_idx) + "]");
     }
 
   /* do the last one */
-  if  (break_idx % HAPPY_DOTS_I) 
-    *mlog << "[" << break_idx << "]";
+  if  (break_idx % HAPPY_DOTS_I)
+       progress_indication (String ("[") + to_str (break_idx) + "]");    
 
-  *mlog << endl;
+
+  progress_indication ("\n");
 
   Array<int> final_breaks;
   Array<Column_x_positions> lines;
index 03be73a2d2719c39c18e790e2bd63419c66c73b5..1b9fe9534fcab36da5bafc0d16f62f6d35bddba3 100644 (file)
@@ -45,12 +45,12 @@ Grace_position_engraver::acknowledge_element (Score_element_info i)
     }
   else if (Note_head * n = dynamic_cast <Note_head*> (i.elem_l_))
     {
-      if (n->get_elt_property ("grace") == SCM_UNDEFINED)
+      if (!to_boolean (n->get_elt_property ("grace")))
        support_.push (n);
     }
   else if (Local_key_item*it = dynamic_cast<Local_key_item*>(i.elem_l_))
     {
-      if (it->get_elt_property ("grace") == SCM_UNDEFINED)
+      if (!to_boolean (it->get_elt_property ("grace")))
        support_.push (it);
       else if (align_l_) 
        it->add_dependency (align_l_);
index 961089bf62c3516cc92d877bf3efb361ef159ecd..a001d1e403a6e8a23eda6c5ad1137a3deef6ae02 100644 (file)
@@ -57,7 +57,8 @@ Includable_lexer::new_input (String s, Sources  * global_sources)
   char_count_stack_.push (0);
   if (yy_current_buffer)
     state_stack_.push (yy_current_buffer);
-  *mlog << "[" << s<< flush;
+       progress_indication (String ("[") + s);
+       
   include_stack_.push (sl);
 
   /*
@@ -80,7 +81,7 @@ Includable_lexer::new_input (String name, String data, Sources* sources)
   char_count_stack_.push (0);
   if (yy_current_buffer)
     state_stack_.push (yy_current_buffer);
-  *mlog << "[" << name << flush;
+       progress_indication (String ("[") + name);
   include_stack_.push (file);
 
   yy_switch_to_buffer (yy_create_buffer (file->istream_l (), YY_BUF_SIZE));
@@ -93,7 +94,7 @@ Includable_lexer::close_input ()
 {
   include_stack_.pop ();
   char_count_stack_.pop ();
-  *mlog << "]"<<flush;
+  progress_indication ("]");
   yy_delete_buffer (yy_current_buffer);
   yy_current_buffer = 0;
   if (state_stack_.empty ())
index faf0eda84180db2a9a3b5c1aa063a6ed7f4391c5..edcb5f020ea840748386a94906256c28a6da337c 100644 (file)
 #include "audio-element.hh"
 
 struct Audio_staff : public Audio_element {
-    void add_audio_item (Audio_item*  l);
-    void output (Midi_stream& midi_stream_r, int track_i);
+  void add_audio_item (Audio_item*  l);
+  void output (Midi_stream& midi_stream_r, int track_i);
 
-    Link_array<Audio_item> audio_item_l_arr_;
+  Link_array<Audio_item> audio_item_l_arr_;
 };
 
 #endif // AUDIO_STAFF_HH
index 727fa6e0f131cd0c5466fe94706624900c65e968..29110c81fea12e71da8c6346edf8d6ea93cd015a 100644 (file)
@@ -25,7 +25,7 @@ protected:
   Protected_scm visibility_lambda_;
   String type_;
   Axis axis_;
-  bool hang_on_clef_b_;
+
 protected:
   /**
     Put the script on #it#
index 3c43bc0dcd92139465b020c96fc12e564a00b18c..e884883fa77be20c6ae68c0c12065693a4306123 100644 (file)
  */
 class Bar:public Item {
 public:
-  String type_str_;
   VIRTUAL_COPY_CONS(Score_element);
-  Bar ();
-
+  Bar();
 protected:
   virtual void do_pre_processing ();
   virtual Molecule* do_brew_molecule_p () const;
   virtual Real get_bar_size () const;
-
-private:
-  void do_print () const;
 };
 #endif // BAR_HH
 
index 3f30b0dd63fff07ebad90bd742f9a0507613b77d..8734471e5eb702d7fa6464bd39ac16f6cd9125b0 100644 (file)
@@ -34,7 +34,13 @@ class Bezier_bow
   Real alpha_;
   Offset origin_;
 public:
-  Bezier_bow (Paper_def* paper_l, Array<Offset> points, Direction dir);
+  Real  rc_factor_,
+    height_limit_,
+    ratio_;
+
+
+  Bezier_bow (Array<Offset> points, Direction dir);
+  void calculate ();
   Bezier get_curve () const;
 };
 
index 50521bbca6694940b95f60ea2a3bc6b3c6207c1e..e06ae4aa705d0b47dcbdc600af0243693d9d378d 100644 (file)
@@ -9,6 +9,7 @@
 
 #ifndef BREAK_HH
 #define BREAK_HH
+
 #include "array.hh"
 #include "interval.hh"
 #include "lily-proto.hh"
 /** Class representation of an algorithm which decides where to put
   the column, and where to break lines.
   
-  TODO:  A "parindent", caching of breakpoints
-  
   */
 class Break_algorithm {
 protected:
-
   Paper_score *pscore_l_;
   Real linewidth_f_;
 
@@ -49,9 +47,7 @@ protected:
   virtual void do_set_pscore();
 
 public:
-  
   Simple_spacer* (*get_line_spacer)();
-    
   Break_algorithm();
   void set_pscore (Paper_score*);
 
diff --git a/lily/include/clef-engraver.hh b/lily/include/clef-engraver.hh
deleted file mode 100644 (file)
index 47e64af..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-  clef-engraver.hh -- declare Clef_engraver
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1996,  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef CLEF_GRAV_HH
-#define CLEF_GRAV_HH
-
-#include "array.hh"
-#include "engraver.hh"
-#include "direction.hh"
-
-/// where is c-0 in the staff?
-class Clef_engraver : public  Engraver {
-  Clef_item * clef_p_;
-  Clef_change_req * clef_req_l_;
-  void create_clef();
-  bool set_type (String);
-protected:
-  virtual void do_process_requests();
-  virtual void do_pre_move_processing();
-  virtual void do_removal_processing();
-  virtual void do_creation_processing();
-  virtual void do_post_move_processing();
-  virtual bool do_try_music (Music*);
-  virtual void acknowledge_element (Score_element_info);
-public:
-  VIRTUAL_COPY_CONS(Translator);
-  int c0_position_i_;
-  int clef_position_i_;
-  Direction octave_dir_;
-  String clef_type_str_;
-  bool create_default_b_;
-   
-  Clef_engraver();
-  
-   
-};
-#endif 
index 652441278dd8f03f2120417ddaab6b26416d94ae..8ef0874bacc35dfd53a781e69ad3981a60aa658c 100644 (file)
@@ -27,13 +27,9 @@ class Clef_item : public Item
 {
 protected:
   virtual void do_pre_processing();
-  virtual Molecule* do_brew_molecule_p() const;
   virtual void do_add_processing ();
 public:
-  String symbol_;
-
   VIRTUAL_COPY_CONS(Score_element);
-  Clef_item();
 };
 
 #endif // CLEFITEM_HH
index 48834a4718bae47e94ea5804b1446aca916b21f9..d39f311094f4e239d84786da5f72794a3eb9d478 100644 (file)
  */
 class Crescendo : public Spanner {
 public:
-  int grow_dir_;
-    
-  /// if there is a dynamic at the end, make the sign smaller.
-  Drul_array<bool> dyn_b_drul_;
-
   Crescendo();
 protected:
   VIRTUAL_COPY_CONS(Score_element);
index 63df6b6afcf0d9f9510582033c2a59c085083eb3..c5928440069b3f9984305cb382549d73f112f063 100644 (file)
@@ -6,15 +6,12 @@
 #define DEBUG_HH
 
 #include <assert.h>
-#include <iostream.h>
 #include "dstream.hh"
 #include "real.hh"
 #include "lily-proto.hh"
 #include "flower-debug.hh"
 #include "warn.hh"
 
-// progress
-extern ostream *mlog;
-
+void progress_indication (String);
 
 #endif
index 25a1a2d3dd4cc54a6f35511037df64348acc62fc..9fdcb039f5398d7a7bdeeafc1d864109e1f68662 100644 (file)
@@ -19,14 +19,14 @@ struct Local_key_cautionary_tuple
   bool natural_b_;
 
   Local_key_cautionary_tuple ()
-    {
-      cautionary_b_ = false;
-         natural_b_ = false;
-    }
+  {
+    cautionary_b_ = false;
+    natural_b_ = false;
+  }
   static int compare (Local_key_cautionary_tuple const&s1, Local_key_cautionary_tuple const&s2)
-    {
-      return Musical_pitch::compare (s1.pitch_, s2.pitch_);
-    }
+  {
+    return Musical_pitch::compare (s1.pitch_, s2.pitch_);
+  }
 };
 
 /**
@@ -46,7 +46,6 @@ class Local_key_item : public Note_head_side
 
   Molecule accidental (int,bool,bool) const;
 public:
-  int c0_position_i_;
   Local_key_item ();
   void add_pitch (Musical_pitch, bool cautionary, bool natural);
 protected:
index 4bc355db512ea6f8117e7fe9205deaab8fc4da39..6e703459a393b2902eb87a2277ec9c2030323f90 100644 (file)
@@ -29,7 +29,6 @@ protected:
   virtual Direction get_default_dir () const;
   virtual void do_post_processing ();
   virtual void do_add_processing ();
-  virtual void do_pre_processing ();
   Array<Rod> get_rods () const;
 };
 
index 4e6f14764edb074a8e995c5751c70f651f3f1661..930af37e107a71aa0be9306b751025c1f9afaa0a 100644 (file)
 class Text_item : public Item
 {
 public:
-  // junkme.
-  String text_str_;
-
   VIRTUAL_COPY_CONS (Score_element);
 protected:
-  virtual void do_print () const;
   virtual Molecule *do_brew_molecule_p () const;
 };
 
index 662ded9f98f19b68c60aeb2256331082ae047efe..d56a331a0ecd3e44ee02a516a7fa1e6bb8ab5591 100644 (file)
@@ -24,14 +24,6 @@ public:
  
   void add_column (Note_column*);
   void add_beam (Beam*);
-  
-  /*
-    JUNKME.
-   */
-  String  number_str_;
-
-  bool parallel_beam_b_;
-  
 protected:
   virtual Molecule* do_brew_molecule_p () const;
   VIRTUAL_COPY_CONS(Score_element);
index 0ef810209f0a202c7ad5459989618aa1c9c9f446..9009c0ceb5ab07b8befd1106efbe1dfbec39c77c 100644 (file)
@@ -21,10 +21,6 @@ public:
   void add_column (Note_column*);
   void add_bar (Bar*);
  
-  String number_str_;
-  bool last_b_;
-
 protected:
   virtual Molecule* do_brew_molecule_p () const;
   VIRTUAL_COPY_CONS (Score_element);
index af2c9d63df882939582f0a12a9d68d8206f52f61..524c408fa3d82906818eb17372e7398ab1a0ede1 100644 (file)
@@ -26,7 +26,7 @@ Item::breakable_b () const
     return false;
   
   Item * i  =dynamic_cast<Item*> (parent_l (X_AXIS));
-  return (i) ?  i->breakable_b () : get_elt_property( "breakable") != SCM_UNDEFINED;
+  return (i) ?  i->breakable_b () : to_boolean (get_elt_property( "breakable"));
 }
 
 Real 
index 299c6d49edd6f2f0f049b68858226d26e599e2e6..767b652dd2ff4461e291f580e76d0e8ff8eef264 100644 (file)
@@ -5,7 +5,7 @@
 
   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   */
-
+// clean me up 
 #include "key-engraver.hh"
 #include "key-item.hh"
 #include "command-request.hh"
@@ -39,7 +39,9 @@ Key_engraver::create_key ()
       
       item_p_->set_elt_property ("break-aligned", SCM_BOOL_T); // ugh
       
-      item_p_->multi_octave_b_ = key_.multi_octave_b_;
+      item_p_->set_elt_property ("multi-octave",
+                                gh_bool2scm (key_.multi_octave_b_));
+      
       announce_element (Score_element_info (item_p_,keyreq_l_));
       
 
index 0552e50e8f225f33106962ed0d04749f128bbe3d..43ddc6931fb598fa0ed05385d0d107ee96941634 100644 (file)
@@ -22,7 +22,6 @@ const int SHARP_TOP_PITCH=4; /*  ais and bis typeset in lower octave */
 
 Key_item::Key_item ()
 {
-  multi_octave_b_ = false;
   set_elt_property ("breakable", SCM_BOOL_T);
   set_c_position (0);
 }
@@ -63,7 +62,7 @@ Key_item::add_old (int p, int a)
 int
 Key_item::calculate_position(int p, int a) const
 {
-  if (multi_octave_b_) 
+  if (to_boolean (get_elt_property ("multi-octave")))
     {
       return p + c0_position_;
     }
index ac577bd101ae046b82e2f16adaf8869b9fe9ea46..2edd23ac88ae3e337c48b1b465aeed74f7562781 100644 (file)
@@ -109,6 +109,7 @@ ly_symbol2scm(const char *s)
 String
 ly_symbol2string (SCM s)
 {
+  assert (gh_symbol_p (s));
   return String((Byte*)SCM_CHARS (s), (int) SCM_LENGTH(s));
 }
 
@@ -129,13 +130,13 @@ read_lily_scm_file (String fn)
       error (e);
     }
   else
-    *mlog << '[' << s;
+    progress_indication ("[" + s);
 
 
   Simple_file_storage f(s);
   
   ly_eval_str ((char *) f.ch_C());
-  *mlog << "]" << flush;  
+  progress_indication ("]");
 }
 
 
@@ -152,12 +153,12 @@ ly_gulp_file (SCM name)
       error (e);
     }
   else
-    *mlog << '[' << s;
+    progress_indication ("[" + s );
 
 
   Simple_file_storage f(s);
   SCM result = ly_str02scm (f.ch_C());
-  *mlog << "]";
+  progress_indication ("]");
   return result;
 }
 
@@ -171,6 +172,7 @@ ly_display_scm (SCM s)
 String
 ly_scm2string (SCM s)
 {
+  assert (gh_string_p (s));
   int len; 
   char * p = gh_scm2newstr (s , &len);
   
@@ -296,10 +298,33 @@ scm_to (SCM s, Real* r)
   // urg
   *r = gh_number_p (s) ? gh_scm2double (s) : 0;
 }
-
   
 bool
 to_boolean (SCM s)
 {
   return gh_boolean_p (s) && gh_scm2bool (s);
 }
+
+/*
+  Appendable list L: the cdr contains the list, the car the last cons
+  in the list.
+  
+ */
+
+SCM
+appendable_list ()
+{
+  SCM s = gh_cons (SCM_EOL, SCM_EOL);
+  gh_set_car_x (s, s);
+  
+  return s;
+}
+
+void
+appendable_list_append (SCM l, SCM elt)
+{
+  SCM newcons = gh_cons (elt, SCM_EOL);
+  
+  gh_set_cdr_x (gh_car (l), newcons);      
+  gh_set_car_x (l, newcons);
+}
index 28d2477f685058374751cf9004c791913e751baf..0f313f40e96f50c3e5669433fbb6ad9d8b9fbd0b 100644 (file)
@@ -30,11 +30,11 @@ Line_of_score::output_lines ()
     {
       Line_of_score *line_l = dynamic_cast<Line_of_score*> (broken_into_l_arr_[i]);
 
-      *mlog << '[' << flush;
+      progress_indication ("[");
       line_l->post_processing ();
-      *mlog << i << flush;
+      progress_indication (to_str (i));
       line_l->output_line (i + 1 == broken_into_l_arr_.size ());
-      *mlog << ']' << flush;
+      progress_indication ("]");
     }
 }
 
index 9029ea1eb40a0a04e7dda8ddb136da76c2112588..72170cc9db8ebdac5b2dcb95fb1b1b8aa16ad2d8 100644 (file)
@@ -3,6 +3,7 @@
 
   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
+// clean up!
 
 #include "musical-request.hh"
 #include "command-request.hh"
@@ -148,7 +149,7 @@ Local_key_engraver::acknowledge_element (Score_element_info info)
   SCM wg= get_property ("weAreGraceContext", 0);
   
   bool selfgr = gh_boolean_p (wg) &&gh_scm2bool (wg);
-  bool he_gr = info.elem_l_->get_elt_property ("grace") != SCM_UNDEFINED;
+  bool he_gr = to_boolean (info.elem_l_->get_elt_property ("grace"));
 
   Grace_align_item * gai = dynamic_cast<Grace_align_item*> (info.elem_l_);  
   if (he_gr && !selfgr && gai)
index cdc25c0b438af41d0e03e982cee0c65de9085106..f0bf3e57e650b3aacc551516d9ee6c88261711dd 100644 (file)
@@ -17,7 +17,6 @@
 
 Local_key_item::Local_key_item ()
 {
-  c0_position_i_ = 0;
 }
 
 void
@@ -90,8 +89,9 @@ Local_key_item::do_brew_molecule_p() const
        }
       
       lastoct = p.octave_i_;
-      Real dy =
-       (c0_position_i_ + p.notename_i_)
+
+      SCM c0 =  get_elt_property ("c0-position");
+      Real dy = (gh_number_p (c0) ? gh_scm2int (c0) : 0 + p.notename_i_)
        * note_distance;
       
       Molecule m (accidental (p.accidental_i_,
index 7227f51f832a8edd51e088d970bcc000ff50ef8a..5e6f01f36b8a0aaa9e10be915405908a35eca911 100644 (file)
@@ -41,11 +41,10 @@ Lyric_engraver::do_process_requests()
   if (req_l_)
     {
       text_p_=  new Text_item;
-      text_p_->text_str_ = req_l_->text_str_;
-      text_p_->text_str_ += " ";       // ugh.
-
-      text_p_->set_elt_property ("non-rhythmic", SCM_BOOL_T);
       
+      text_p_->set_elt_property ("text",
+                                ly_str02scm   ((req_l_->text_str_ + " ").ch_C ()));
+      text_p_->set_elt_property ("non-rhythmic", SCM_BOOL_T);
       announce_element (Score_element_info (text_p_, req_l_));
     }
 }
index b45226b6e97bef90bb41993aceff9ddbb67c488f..a73534fc608757dbb72d1a1b697ef8f3d739bff4 100644 (file)
@@ -16,7 +16,6 @@
 
 #include "all-font-metrics.hh"
 #include "proto.hh"
-#include "dimensions.hh"
 #include "getopt-long.hh"
 #include "misc.hh"
 #include "string.hh"
@@ -305,7 +304,7 @@ main (int argc, char **argv)
          break;
        case 't':
          experimental_features_global_b = true;
-         *mlog << "*** enabling experimental features, you're on your own now ***\n";
+         progress_indication ("*** enabling experimental features, you're on your own now ***\n");
          break;
        case 'o':
          outname_str_global = oparser_global_p->optional_argument_ch_C_;
index e00947c9ab4100c53ba4b94ab68b26c3d8bd71b4..52dbfbe921215c00a554ca73a476dc7ae01c917a 100644 (file)
@@ -45,8 +45,11 @@ Mark_engraver::do_process_requests ()
   if (mark_req_l_)
     {
       create_items (mark_req_l_);
-      text_p_->text_str_ = mark_req_l_->str_;
-      SCM st = ly_str02scm ((text_p_->text_str_.index_any_i ("0123456789")  >= 0 )
+
+      String t = mark_req_l_->str_;
+      text_p_->set_elt_property ("text",
+                                ly_str02scm ( t.ch_C()));
+      SCM st = ly_str02scm ((t.index_any_i ("0123456789")  >= 0 )
                            ? "mark" : "large");
       text_p_->set_elt_property ("style",  st);
     }
index 3147b6e51721cd6538915b024dc67bcc2a844c53..cd1b67f9137e5d00c101cc438f667dc504e2a6de 100644 (file)
@@ -167,7 +167,7 @@ My_lily_lexer::LexerError (char const *s)
 {
   if (include_stack_.empty())
     {
-      *mlog << _f ("error at EOF: %s", s) << endl;
+      progress_indication (_f ("error at EOF: %s", s)+ String ("\n"));
     }
   else
     {
index ded1ae87a0d66b0bcc039cf930f07b28f1725142..794e191de7ad5674d8620a57cf8b7dc6c7f455f4 100644 (file)
@@ -58,7 +58,7 @@ My_lily_parser::parse_file (String init, String s)
   init_str_ = init;
   lexer_p_->main_input_str_ = s;
 
-  *mlog << _ ("Parsing...");
+  progress_indication (_("Parsing..."));
 
   init_parse_b_ = false;
   set_yydebug (flower_dstream &&!flower_dstream->silent_b ("Parser"));
index 9701d9cd0c8e45181c1805ec54d77d89bedf3b79..7216a4a9b4f8c116bc1642313943ba48d32148a2 100644 (file)
@@ -5,6 +5,9 @@
 
   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
+#include <math.h>              // ceil
+
+
 #include "dot-column.hh"
 #include "note-column.hh"
 #include "beam.hh"
@@ -141,7 +144,6 @@ Note_column::set_dotcol (Dot_column *d)
   Should lookup
     
     rest -> stem -> beam -> interpolate_y_position ()
-    
 */
 
 void
index 46c7ab52d69b44b799b934529efc8d3682390f25..a87cea19ff94e366aba658f3f023a221f8c3cbf6 100644 (file)
@@ -47,7 +47,7 @@ Note_name_engraver::do_process_requests ()
   if (s.length_i())
     {
       Text_item * t = new Text_item;
-      t->text_str_ = s;
+      t->set_elt_property ("text", ly_str02scm ( s.ch_C()));
       announce_element (Score_element_info (t, req_l_arr_[0]));
       texts_.push (t);
     }
index eb209453def09d5b610567b7ace6f1c8b21e13a5..2fedfe4b32ca35c1e63618b7eaea966d371fb9a2 100644 (file)
@@ -204,8 +204,9 @@ Paper_def::paper_stream_p () const
 
   if (outname != "-")
     outname += String (".") + output_global_ch;
-  *mlog << _f ("paper output to %s...", 
-              outname == "-" ? String ("<stdout>") : outname) << endl;
+  progress_indication (_f ("paper output to %s...",
+                          outname == "-" ? String ("<stdout>") : outname));
+                      
 
   target_str_global_array.push (outname);
   return new Paper_stream (outname);
index b23d002e55c943a7769189d5764e562cce9bc559..097ef2bc38982c033efe05f3a880178bacdb9942 100644 (file)
@@ -112,12 +112,12 @@ Paper_score::process ()
 {
 
   print ();
-  *mlog << _ ("Preprocessing elements...") << " " << flush;
+  progress_indication (_ ("Preprocessing elements...") + " ");
   line_l_->breakable_col_processing ();
   fixup_refpoints ();
   line_l_->pre_processing ();
   
-  *mlog << '\n' << _ ("Calculating column positions...") << " " << flush;
+  progress_indication ("\n" + _ ("Calculating column positions...") + " " );
   line_l_->space_processing ();
 
   Array<Column_x_positions> breaking = calc_breaking ();
index cb56dd2b4208e364426bd107c5a89db45ad210bb..99aa0458de82ee744e7d665db24e0fb55ccd3936 100644 (file)
@@ -46,15 +46,13 @@ Performance::output (Midi_stream& midi_stream)
 
   midi_stream << Midi_header (1, tracks_i, clocks_per_4_i);
   output_header_track (midi_stream);
-  *mlog << "\n";
-  *mlog << _ ("Track ... ");
+  progress_indication ("\n");
+  progress_indication (_ ("Track ... "));
   int channel = 1;
   for (int i =0; i < audio_staff_l_arr_.size (); i++)
     {
-      *mlog << '[' << flush;
       Audio_staff *s = audio_staff_l_arr_[i];
-
-      *mlog << i << flush;
+      progress_indication ("[" + to_str (i)) ;
 
       /*
        Aargh, let's hear it for the MIDI standard.
@@ -64,7 +62,7 @@ Performance::output (Midi_stream& midi_stream)
       if (channel == 9)
        channel++;
       s->output (midi_stream, channel++);
-      *mlog << ']' << flush;
+      progress_indication ("]");
     }
 }
 
@@ -171,9 +169,9 @@ Performance::process()
     }
   
   Midi_stream midi_stream (out);
-  *mlog << _f ("MIDI output to %s...", out) << endl;
+  progress_indication ( _f ("MIDI output to %s...", out));
   target_str_global_array.push (out);
 
   output (midi_stream);
-  *mlog << endl;
+  progress_indication("\n");
 }
index 0c86a3c703b5391f52a01ac330658e23d77e4814..d2eb399759599ea8d4fdd132366f846302c57626 100644 (file)
@@ -68,7 +68,7 @@ Property_engraver::apply_properties (SCM p, Score_element *e)
       if (val != SCM_UNDEFINED
          && gh_apply (type_p, scm_listify (val, SCM_UNDEFINED))
          == SCM_BOOL_T)
-       e->set_elt_property (ly_scm2string (elt_prop_name), val);
+       e->set_elt_property (ly_symbol2string (elt_prop_name), val);
     }
 }
 
index cdea34d4b270029e74273e509b0813225f772674..86b202972eac9e4d49e15c29498ff600b4de830f 100644 (file)
@@ -48,6 +48,8 @@ Repeat_engraver::do_try_music (Music* m)
 
 /**
  Walk through repeat music, and generate events for appropriate times.
+
+ UGH. Should use Music_iteration for this.
 */
 void
 Repeat_engraver::queue_events ()
@@ -176,8 +178,10 @@ Repeat_engraver::do_process_requests ()
              assert (!volta_span_p_);
              volta_span_p_ = new Volta_spanner;
              announce_element (Score_element_info (volta_span_p_,0));
-             volta_span_p_->number_str_ = t;
-             volta_span_p_->last_b_ = head->car_->last_b_;
+             volta_span_p_->set_elt_property ("text",
+                                              ly_str02scm (t.ch_C()));
+             volta_span_p_->set_elt_property ("last-volta",
+                                              gh_bool2scm (head->car_->last_b_));
              // voltaSpannerDuration stuff here.
              // other property stuff here.
            }
index 1f1c8748068ab97ae29edf8f7dff659e8677f52a..117c5db333407050ff5f87bfde651b008bdc7d2d 100644 (file)
@@ -5,6 +5,8 @@
 
   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
+#include <math.h>              // ceil.
+
 #include "beam.hh"
 #include "debug.hh"
 #include "rest-collision.hh"
index 2709b60a82568c89481782773b4994b45759896c..0be292f7013d4068c59b9d29c5d6c22ced199d1b 100644 (file)
@@ -97,7 +97,7 @@ Rhythmic_column_engraver::acknowledge_element (Score_element_info i)
        end slurs starting on grace notes
        */
       
-      if (s->get_elt_property ("grace") != SCM_UNDEFINED)
+      if (to_boolean (s->get_elt_property ("grace")))
        grace_slur_endings_.push (s);
    }
 }
diff --git a/lily/score-column.cc b/lily/score-column.cc
deleted file mode 100644 (file)
index 40363f3..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-  score-column.cc -- implement Paper_column
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
index f2c462f91a3cf7f2b48666d9a7062ce2f3828f26..8e180bc4017b93067a7ea40a484b6dd556470089 100644 (file)
@@ -331,10 +331,20 @@ Score_element::do_add_processing()
 Molecule*
 Score_element::do_brew_molecule_p() const
 {
-  Interval emp;
-  emp.set_empty ();
-  Molecule a (lookup_l ()->fill (Box (emp,emp)));
-  return new Molecule (a);
+  SCM glyph = get_elt_property ("glyph");
+  if (gh_string_p (glyph))
+    {
+      Molecule*output = new Molecule (lookup_l ()->afm_find (String (ly_scm2string (glyph))));
+      
+      return output;
+    }
+  else
+    {
+      Interval emp;
+      emp.set_empty ();
+      Molecule a (lookup_l ()->fill (Box (emp,emp)));
+      return new Molecule (a);
+    }
 }
 
 
@@ -540,8 +550,6 @@ Score_element *
 Score_element::common_refpoint (Score_element const* s, Axis a) const
 {
   Dimension_cache *dim = dim_cache_[a]->common_refpoint (s->dim_cache_[a]);
-  if (!dim)
-    programming_error ("No  common reference point");
   return  dim ? dim->element_l () : 0;
 }
 
index 5f7c1a0f5a400cb19845745662b5346f18a2d23a..3b5f9465498eee6db295b4ce05e275a911263631 100644 (file)
@@ -39,7 +39,7 @@ void
 Score_engraver::finish()
 {
   if ((breaks_i_%8))
-    *mlog << "[" << breaks_i_ << "]" << flush;
+    progress_indication ("[" + to_str ( breaks_i_) + "]");
    
   check_removal();
   removal_processing();
@@ -142,7 +142,7 @@ Score_engraver::typeset_all()
 
          if (!item_p->parent_l (X_AXIS))
            {
-             bool br = (item_p->remove_elt_property ("breakable") != SCM_UNDEFINED);
+             bool br = to_boolean (item_p->remove_elt_property ("breakable"));
              if (br)
                command_column_l_->add_element(item_p);
              else
@@ -158,11 +158,11 @@ Score_engraver::typeset_all()
 void
 Score_engraver::do_pre_move_processing()
 {
-  if (command_column_l_->get_elt_property ("breakable") !=  SCM_UNDEFINED)
+  if (to_boolean (command_column_l_->get_elt_property ("breakable")))
     {
       breaks_i_ ++;
       if (! (breaks_i_%8))
-       *mlog << "[" << breaks_i_ << "]" << flush;
+       progress_indication ("[" + to_str ( breaks_i_) + "]");
     }
   // this generates all items.
   Engraver_group_engraver::do_pre_move_processing();
@@ -199,7 +199,6 @@ Score_engraver::set_columns (Paper_column *new_command_l,
     }
 }
 
-
 Staff_info
 Score_engraver::get_staff_info() const
 {
@@ -211,7 +210,6 @@ Score_engraver::get_staff_info() const
   return inf;
 }
 
-
 Music_output*
 Score_engraver::get_output_p ()
 {
@@ -233,9 +231,9 @@ Score_engraver::do_try_music (Music*r)
 
 
          SCM pen = command_column_l_->get_elt_property  ("penalty");
-         Real total_penalty = (pen == SCM_UNDEFINED)
-           ? 0.0
-           : gh_scm2double(pen); // ugh. Should typecheck.
+         Real total_penalty = gh_number_p (pen)
+           ? gh_scm2double(pen)
+           : 0.0;
 
          total_penalty += b->penalty_f_;
          if (b->penalty_f_ > 10000.0) //  ugh. arbitrary.
index cc73e09c1c8b264b562ec8f347fe0b795b074815..6911cdfa58cb0c47e83c8ec4cb5396512456d675 100644 (file)
@@ -56,7 +56,7 @@ Score::run_translator (Music_output_def *odef_l)
       non_fatal_error (_("no toplevel translator"));
       return ;
     }
-  *mlog << '\n' << _("Interpreting music...") << flush;
+  progress_indication ("\n" + _("Interpreting music..."));
   trans_p->final_mom_ = music_p_->length_mom ();
 
 
@@ -86,12 +86,12 @@ Score::run_translator (Music_output_def *odef_l)
 
   Music_output * output = trans_p->get_output_p();
   delete trans_p;
-  *mlog << endl << _f ("elapsed time: %.2f seconds",  timer.read ()) << flush;
+  progress_indication (_f ("elapsed time: %.2f seconds",  timer.read ()));
 
   output->header_l_ = header_p_;
   output->origin_str_ =  location_str();
 
-  *mlog << endl;
+  progress_indication ("\n");
   output->process();
   delete output ;
 }
index 18a7fac8b068c0ac6576cbf408880b05a2826e94..5c892091a7bfb8d7447f003c1e3a6f8842ede9c8 100644 (file)
@@ -15,7 +15,7 @@ void
 Script_column::add_staff_sided (Item *i)
 {
   SCM p = i->get_elt_property ("script-priority");
-  if (p == SCM_UNDEFINED)
+  if (!gh_number_p (p))
     return;
   
 
index 5fb7c6767dd810d2e0b37452b5fc7f0d8698be88..c3dc48943d012e6670296c15216633d951573428 100644 (file)
@@ -19,7 +19,7 @@ Molecule
 Script::get_molecule(Direction d) const
 {
   SCM s = get_elt_property ("molecule");
-  assert (s != SCM_UNDEFINED);
+  assert (gh_pair_p (s));
 
   SCM key = gh_car  (s);
   if (key == ly_symbol2scm ("feta"))
index cbb7899ff4d19a9f3b1e77c26202ca8bb70500ef..d261d33eaf78a76997ec202f6cb3d154f11ceb0c 100644 (file)
@@ -6,6 +6,7 @@
   (c) 1998--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
+#include <math.h>              // ceil.
 
 #include "side-position-interface.hh"
 #include "staff-symbol.hh"
index e5be36ae521a5f999ef4c310ec781320e26a1fdf..30112212c89861d337631def9ace88c889c1b919 100644 (file)
@@ -75,11 +75,6 @@ Slur::do_add_processing ()
     set_bounds (RIGHT, encompass_arr.top ());
 }
 
-void
-Slur::do_pre_processing ()
-{
-  // don't set directions
-}
 
 
 Offset
index 79163537470cca6d1272a0514c3532c0f196dafa..0082a25ae490db0979d21d1fdeb81c9cfdfbb736 100644 (file)
@@ -52,10 +52,10 @@ Spacing_engraver::do_removal_processing ()
 void
 Spacing_engraver::acknowledge_element (Score_element_info i)
 {
-  if (i.elem_l_->get_elt_property ("grace") != SCM_UNDEFINED)
+  if (to_boolean (i.elem_l_->get_elt_property ("grace")))
     return;
 
-  if (i.elem_l_->get_elt_property ("non-rhythmic") != SCM_UNDEFINED)
+  if (to_boolean (i.elem_l_->get_elt_property ("non-rhythmic")))
     return;
   
   if (Rhythmic_req * r = dynamic_cast<Rhythmic_req*>(i.req_l_))
index e54f3f971b6e92dc228141b22794490d71209626..7d9194d66e39b54147cf862ac98f431062ef9d4b 100644 (file)
@@ -126,11 +126,11 @@ Spacing_spanner::do_measure (Link_array<Paper_column> cols) const
          */
          if (lc->musical_b () && rc->musical_b ())
            {
-             if (rc->get_elt_property ("contains-grace") == SCM_UNDEFINED)
+             if (!to_boolean (rc->get_elt_property ("contains-grace")))
                right_dist *= paper_l ()->get_var ("musical_to_musical_left_spacing_factor");
            }
 
-         if (rc->musical_b () && rc->get_elt_property ("contains-grace") != SCM_UNDEFINED)
+         if (rc->musical_b () && to_boolean (rc->get_elt_property ("contains-grace")))
            right_dist *= paper_l ()->get_var ("before_grace_spacing_factor");
  
  
index 2f43cd985f8b5b60aa14006ac9a8ffd866da2663..951235525f1e89bfb73d1e2731d00206680e0cb9 100644 (file)
@@ -30,7 +30,9 @@ Interval
 Span_bar::width_callback (Dimension_cache const * c)
 {
   Span_bar*  s= dynamic_cast<Span_bar*> (c->element_l ());  
-  Molecule m = s->lookup_l ()->bar (s->type_str_, 40 PT, s->paper_l ());
+  String gl = ly_scm2string (s->get_elt_property ("glyph"));
+  
+  Molecule m = s->lookup_l ()->bar (gl, 40 PT, s->paper_l ());
   
   return m.extent (X_AXIS);
 }
@@ -63,24 +65,29 @@ Span_bar::evaluate_empty ()
       set_empty (X_AXIS);
       set_empty (Y_AXIS);   
     }
-  if (type_str_.empty_b ()) 
+
+  SCM gl = get_elt_property ("glyph");
+  if (!gh_string_p (gl))
     {
       set_elt_property ("transparent", SCM_BOOL_T);
       set_empty (X_AXIS);
       set_empty (Y_AXIS);   
     }
-  else if (type_str_ == "|:") 
+  else {
+    String type_str = ly_scm2string (gl);
+    if (type_str == "|:") 
     {
-      type_str= ".|";
+      type_str= ".|";
     }
-  else if (type_str== ":|")
+  else if (type_str== ":|")
     {
-      type_str= "|.";
+      type_str= "|.";
     }
-  else if (type_str== ":|:")
+  else if (type_str== ":|:")
     {
-      type_str= ".|.";
+      type_str= ".|.";
     }
+  }
 }
 
 Interval
@@ -121,9 +128,12 @@ Span_bar::do_brew_molecule_p () const
 {
   Interval iv (get_spanned_interval ());
   Molecule*output = new Molecule;
-  if (!iv.empty_b())
+  SCM s = get_elt_property ("glyph");
+  if (gh_string_p (s) && !iv.empty_b())
     {
-      output->add_molecule (lookup_l ()->bar (type_str_, iv.length (), paper_l ()));
+      output->add_molecule (lookup_l ()->bar (ly_scm2string (s),
+                                             iv.length (),
+                                             paper_l ()));
     }
   else
     {
@@ -136,7 +146,6 @@ Span_bar::do_brew_molecule_p () const
 
 Span_bar::Span_bar ()
 {
-  type_str_ = "";
   dim_cache_[X_AXIS]->set_callback (width_callback);
   dim_cache_[Y_AXIS]->set_callback (height_callback);  
 }
index e4efbe0ec068e1ab2c29d5485ba4cbdccf863e8a..c25121169326e3e682d7d94b6fc41d3d4468d0ab 100644 (file)
@@ -16,7 +16,7 @@ Span_bar*
 Span_score_bar_engraver::get_span_bar_p () const
 {
   Span_bar*s =  new Span_bar;
-  s->type_str_ = "scorebar";
+  s->set_elt_property ("glyph",  gh_str02scm ("scorebar"));
   s->set_elt_property ("break-aligned",SCM_BOOL_T);
 
   return s;
@@ -33,7 +33,7 @@ Piano_bar_engraver::get_span_bar_p () const
 {
   Span_bar *s= new Span_bar;
   s->set_empty (X_AXIS);
-  s->type_str_ = "brace";
+  s->set_elt_property ("glyph", gh_str02scm ("brace"));
   return s;
 }
 
@@ -42,7 +42,7 @@ Staff_group_bar_engraver::get_span_bar_p () const
 {
   Span_bar *s= new Span_bar;
   s->set_empty (X_AXIS);
-  s->type_str_ = "bracket";
+  s->set_elt_property ("glyph",  gh_str02scm ("bracket"));
   return s;
 }
 
@@ -52,7 +52,8 @@ Staff_group_bar_engraver::acknowledge_element (Score_element_info i)
   Base_span_bar_engraver::acknowledge_element (i);
   if (Span_bar * b = dynamic_cast<Span_bar *> (i.elem_l_))
     {
-      if (b->type_str_ == "brace")
+      SCM gl = b->get_elt_property ("glyph");
+      if (gh_string_p (gl) && ly_scm2string (gl)  == "brace")
        b->translate_axis ( -paper_l ()->get_var ("interline"),
                            X_AXIS); // ugh
     }
index bc52eb857d2f0d38f214eb67a8ea88cbd626d6a3..148ce368d54a4045d6537a3b1b08cd8c48bd90dd 100644 (file)
@@ -50,7 +50,7 @@ Staff_margin_engraver::acknowledge_element (Score_element_info inf)
   if (gh_string_p (long_name))
     {
       create_items (0);
-      text_p_->text_str_ = ly_scm2string (long_name);
+      text_p_->set_elt_property ("text", long_name);
       text_p_->set_elt_property ("direction", gh_int2scm (LEFT));
       Bar_script_engraver::attach_script_to_item (i);
 
index 7c721c203d3503ece4b6cf4338e53d83e13296e2..18889df2d9723ec02c0a6085d5c197c5e0fcc5a8 100644 (file)
@@ -8,6 +8,8 @@
 
   TODO: This is way too hairy
 */
+#include <math.h>              // m_pi
+
 #include "directional-element-interface.hh"
 #include "dimension-cache.hh"
 #include "stem.hh"
@@ -252,7 +254,7 @@ Stem::get_default_dir () const
 Real
 Stem::get_default_stem_end_position () const
 {
-  bool grace_b = get_elt_property ("grace") != SCM_UNDEFINED;
+  bool grace_b = to_boolean (get_elt_property ("grace"));
   String type_str = grace_b ? "grace-" : "";
   SCM s;
   Array<Real> a;
@@ -411,7 +413,7 @@ Stem::flag () const
 {
   String style;
   SCM st = get_elt_property ("flag-style");
-  if ( st != SCM_UNDEFINED)
+  if ( gh_string_p (st))
     {
       style = ly_scm2string (st);
     }
@@ -430,7 +432,7 @@ Stem::dim_callback (Dimension_cache const* c)
   Stem * s = dynamic_cast<Stem*> (c->element_l ());
   
   Interval r (0, 0);
-  if (s->get_elt_property ("beam") != SCM_UNDEFINED || abs (s->flag_i ()) <= 2)
+  if (unsmob_element (s->get_elt_property ("beam")) || abs (s->flag_i ()) <= 2)
     ;  // TODO!
   else
     {
index 989332320e8184fff491f9548187b0cc0dc95d4d..de0a4bb94166e6a6e36ca32af6f02cb1b7d1756d 100644 (file)
@@ -96,7 +96,8 @@ Text_engraver::do_process_requests ()
       if (r->get_direction ())
        stafy.set_direction (r->get_direction ());
       
-      text->text_str_ = r->text_str_;
+      text->set_elt_property ("text",
+                             ly_str02scm ( r->text_str_.ch_C ()));
       
       if (r->style_str_.length_i ())
        text->set_elt_property ("style", ly_str02scm (r->style_str_.ch_C()));
index 1d32e746a3f2cb123c3b772f8cc34fea7c63fa51..d51a1363852da12891b018dff849c01f66d125cb 100644 (file)
@@ -18,15 +18,12 @@ Text_item::do_brew_molecule_p () const
 {
   SCM style = get_elt_property ("style");
   String st = gh_string_p (style) ?  ly_scm2string (style) : "";
+  SCM txt = get_elt_property ("text");
+  String t = gh_string_p (txt) ? ly_scm2string (txt) : "";
   
-  Molecule a= paper_l ()->lookup_l(0)->text (st, text_str_, paper_l ());
+  Molecule a= paper_l ()->lookup_l(0)->text (st, t, paper_l ());
 
   return new Molecule (a);
 }
 
-void
-Text_item::do_print () const
-{
-  DEBUG_OUT <<  "text= " << text_str_;
-}
 
index 15597313e3ff72388af43a42389520222cd98bbb..1743da7314bca98a4b43d51d51f03c94a7ae7436 100644 (file)
@@ -129,6 +129,7 @@ Tie::do_post_processing()
            Getting scared a bit by score-element's comment:
            // is this a good idea?
          */
+         // FIXME extremal deprecated
          && (head (d)->get_elt_property ("extremal")
              != SCM_UNDEFINED))
        {
index 8caa3eef77f48c180f9069ff1d368e16d7884db4..3879f6963481b9da1206c1466b0d3abaa05c679a 100644 (file)
@@ -102,10 +102,8 @@ Timing_translator::do_pre_move_processing()
     {
       Moment barleft = (measure_length () - measure_position ());
 
-      if (barleft < Moment (0))
-       barleft = 0;
-
-      global_l->add_moment_to_process (now_mom () + barleft);
+      if (barleft > Moment (0))
+       global_l->add_moment_to_process (now_mom () + barleft);
     }
 }
 
index b8f85eb870dfef0668728e58597190d19fbea66b..e6fe96b12cdb5f17a93b0a3f828f1e534c713a01 100644 (file)
@@ -48,7 +48,9 @@ Tuplet_engraver::do_process_requests ()
     {
       Tuplet_spanner* glep = new Tuplet_spanner;
       started_span_p_arr_.push (glep);
-      glep->number_str_ = to_str (time_scaled_music_arr_[i]->den_i_);
+      glep->set_elt_property ("text",
+                             ly_str02scm (to_str (time_scaled_music_arr_[i]->den_i_).ch_C()));
+      
       glep->set_elt_property("tuplet-visibility",
                              gh_int2scm (visibility));
       if (dir != 0)
@@ -60,7 +62,7 @@ Tuplet_engraver::do_process_requests ()
 void
 Tuplet_engraver::acknowledge_element (Score_element_info i)
 {
-  bool grace= (i.elem_l_->get_elt_property ("grace") != SCM_UNDEFINED);
+  bool grace= to_boolean (i.elem_l_->get_elt_property ("grace"));
   SCM wg = get_property ("weAreGraceContext",0);
   bool wgb = to_boolean (wg);
   if (grace != wgb)
index 355a036fef500ee23f8af715ee992bb6cd625c5f..ce9afe22432a9ef4b92d0a1553978a3e654f58a0 100644 (file)
 
 Tuplet_spanner::Tuplet_spanner ()
 {
-  /*
-    -> GUILE
-   */
-  parallel_beam_b_ = false;
   set_elt_property ("beams", SCM_EOL);
   set_elt_property ("columns", SCM_EOL);  
 }
@@ -41,10 +37,11 @@ Tuplet_spanner::do_brew_molecule_p () const
   Molecule* mol_p = new Molecule;
 
   // Default behaviour: number always, bracket when no beam!
-  bool bracket_visibility = !parallel_beam_b_;
+  bool par_beam = to_boolean (get_elt_property ("parallel-beam"));
+  bool bracket_visibility = !par_beam;
   bool number_visibility = true;
   SCM visibility_sym =get_elt_property ("tuplet-visibility");
-  if (visibility_sym != SCM_UNDEFINED)
+  if (gh_number_p (visibility_sym))
     {
       /*
        ARG. Fixme.
@@ -58,9 +55,9 @@ Tuplet_spanner::do_brew_molecule_p () const
         4       show number, and bracket
       */
       int value = gh_scm2int ((visibility_sym));
-      bracket_visibility = (value == 4 || (value > 1 && !parallel_beam_b_));
+      bracket_visibility = (value == 4 || (value > 1 && !par_beam));
       number_visibility = (value > 2 || value == 1 || 
-                          (value == 2 && !parallel_beam_b_));
+                          (value == 2 && !par_beam));
     }
   
   if (gh_pair_p (get_elt_property ("columns")))
@@ -70,33 +67,42 @@ Tuplet_spanner::do_brew_molecule_p () const
        
       Real ncw = column_arr.top ()->extent(X_AXIS).length ();
       Real w = spanner_length () + ncw;
-      Molecule num (lookup_l ()->text ("italic",
-                                      number_str_, paper_l ()));
-      num.align_to (X_AXIS, CENTER);
-      num.translate_axis (w/2, X_AXIS);
-      Real interline = paper_l ()->get_var ("interline");
+
+
+      Real staff_space = paper_l ()->get_var ("interline");
+      
 
       Direction dir = directional_element (this).get ();
       Real dy = column_arr.top ()->extent (Y_AXIS) [dir]
-       - column_arr[0]->extent (Y_AXIS) [dir];
-      num.align_to (Y_AXIS, CENTER);
-      num.translate_axis (dir * interline, Y_AXIS);
+           - column_arr[0]->extent (Y_AXIS) [dir];
+      
+
+      SCM number = get_elt_property ("text");
+      if (gh_string_p (number))
+       {
+
+         Molecule
+           num (lookup_l ()->text ("italic",
+                                   ly_scm2string (number), paper_l ()));
+         num.align_to (X_AXIS, CENTER);
+         num.translate_axis (w/2, X_AXIS);
+         num.align_to (Y_AXIS, CENTER);
+         num.translate_axis (dir * staff_space, Y_AXIS);
        
-      num.translate_axis (dy/2, Y_AXIS);
-    
+         num.translate_axis (dy/2, Y_AXIS);
+
+         mol_p->add_molecule (num);
+       }
+      
       Real thick = paper_l ()->get_var ("tuplet_thick");
       if (bracket_visibility)      
        {
          Real gap = paper_l () -> get_var ("tuplet_spanner_gap");
        
-         mol_p->add_molecule (lookup_l ()->tuplet_bracket (dy, w, thick, gap, interline, dir));
+         mol_p->add_molecule (lookup_l ()->tuplet_bracket (dy, w, thick, gap, staff_space, dir));
        }
 
-      if (number_visibility)
-       {
-         mol_p->add_molecule (num);
-       }
-      mol_p->translate_axis (dir * interline, Y_AXIS);
+      mol_p->translate_axis (dir * staff_space, Y_AXIS);
     }
   return mol_p;
 }
@@ -140,7 +146,7 @@ Tuplet_spanner::do_post_processing ()
       if (!broken_b () 
          && spanned_drul_[LEFT]->column_l () == beam_l->spanned_drul_[LEFT]->column_l ()
          && spanned_drul_[RIGHT]->column_l () == beam_l->spanned_drul_[RIGHT]->column_l ())
-       parallel_beam_b_ = true;
+       set_elt_property ("parallel-beam", SCM_BOOL_T);
     }
 }
 
index 5acbc039a043a88f32f1d1d19b06d120d35d52e6..15e2fc86979d9ce4fae1a86be3cf3ac2a0ce9f73 100644 (file)
 
 Volta_spanner::Volta_spanner ()
 {
-  last_b_ = false;
   dim_cache_ [Y_AXIS]->set_callback (dim_callback);
   set_elt_property ("bars", SCM_EOL);
   set_elt_property ("note-columns", SCM_EOL);
 }
 
+/*
+  FIXME: too complicated.
+ */
 Molecule*
 Volta_spanner::do_brew_molecule_p () const
 {
@@ -43,14 +45,18 @@ Volta_spanner::do_brew_molecule_p () const
     = Group_interface__extract_elements (this, (Score_element*)0, "note-columns");
   
   bool no_vertical_start = false;
-  bool no_vertical_end = last_b_;
+  bool no_vertical_end = to_boolean (get_elt_property ("last-volta"));
   Spanner *orig_span =  dynamic_cast<Spanner*> (original_l_);
   if (orig_span && (orig_span->broken_into_l_arr_[0] != (Spanner*)this))
     no_vertical_start = true;
   if (orig_span && (orig_span->broken_into_l_arr_.top () != (Spanner*)this))
     no_vertical_end = true;
-  if (bar_arr.top ()->type_str_.length_i () > 1)
+
+#if 0
+  // FIXME
+  if (bar_arr.top ()->get_elt_property (type_str_.length_i () > 1)
     no_vertical_end = false;
+#endif
 
   Real staff_space = paper_l ()->get_var ("interline");
   Real half_staff_space = staff_space/2;
@@ -62,11 +68,18 @@ Volta_spanner::do_brew_molecule_p () const
   Molecule volta (lookup_l ()->volta (h, w, t, no_vertical_start, no_vertical_end));
 
   
-  Molecule num (lookup_l ()->text ("volta", number_str_, paper_l ()));
-  Real dy = bar_arr.top ()->extent (Y_AXIS) [UP] > 
+  Molecule num (lookup_l ()->text ("volta",
+                                  ly_scm2string (get_elt_property("text")),
+                                  paper_l ()));
+  Real dy = bar_arr.top ()->extent (Y_AXIS) [UP] >? 
      bar_arr[0]->extent (Y_AXIS) [UP];
   dy += 2 * h;
 
+
+  /*
+    CODE DUPLICATION.
+    FIXME (see axis-group-elt, side-pos interface.)
+   */
   for (int i = 0; i < note_column_arr.size (); i++)
     dy = dy >? note_column_arr[i]->extent (Y_AXIS)[BIGGER];
   dy -= h;
@@ -116,7 +129,6 @@ Volta_spanner::dim_callback (Dimension_cache const *c)
 void
 Volta_spanner::do_post_processing ()
 {
-
   Link_array<Bar> bar_arr
     = Group_interface__extract_elements (this, (Bar*)0, "bars");
   
@@ -124,8 +136,6 @@ Volta_spanner::do_post_processing ()
     translate_axis (bar_arr[0]->extent (Y_AXIS)[UP], Y_AXIS);
   translate_axis (get_broken_left_end_align (), X_AXIS);
 }
-
-
   
 void
 Volta_spanner::add_bar  (Bar* c)
index 36231783801d492490c1755e13438e6a00e9ada5..74265b9e31bf7340cf31291c6299ea71e92bfcd5 100644 (file)
 #include "input.hh"
 
 ostream &warnout (cerr);
-ostream *mlog (&cerr);
 
+void
+progress_indication (String s)
+{
+  cerr << s << flush;
+}
 
index e7b6eac28739a0da4399e73d6bcec329446a7219..d6c0930ea81da399539977bae2f7bbd00056c65d 100644 (file)
@@ -2,6 +2,7 @@
   
 breve = \duration { -1 0 }
 longa = \duration { -2 0 }
+maxima = \duration { -3 0 }
 
 #(eval-string (ly-gulp-file "generic-property.scm"))
 
index e33e182bbc2c17ba4d410c4ce48a7eb587f3cf4c..7a2f8dfa5921789190d9c280308149a9ffe9ea92 100644 (file)
@@ -20,22 +20,25 @@ StaffContext=\translator {
 
        %  name, glyph id, c0 position
        supportedClefTypes = #'(
-         ("treble" "treble" -2)
-         ("violin" "treble" -2)
-         ("G" "treble" -2)
-         ("G2" "treble" -2)
-         ("french" "treble" -4 )
-         ("soprano" "alto" -4 )
-         ("mezzosoprano" "alto" -2 )
-         ("alto" "alto" 0 )
-         ("tenor" "alto" 2 )
-         ("baritone" "alto" 4 )
-         ("varbaritone" "bass" 0)
-         ("bass" "bass" 2 )
-         ("F" "bass" 2)
-         ("subbass" "bass" 4)
+         ("treble" . ("G" -2))
+         ("violin" . ("G" -2))
+         ("G" . ("G" -2))
+         ("G2" . ("G" -2))
+         ("french" . ("G" -4 ))
+         ("soprano" . ("C" -4 ))
+         ("mezzosoprano" . ("C" -2 ))
+         ("alto" . ("C" 0 ))
+         ("tenor" . ("C" 2 ))
+         ("baritone" . ("C" 4 ))
+         ("varbaritone"  . ("F" 0))
+         ("bass" . ("F" 2 ))
+         ("F" . ( "F" 2))
+         ("subbass" . ("F" 4))
        )
-       
+       clefPitches = #'(("G" . -4)
+         ("C" . 0)
+         ("F" . 4))
+         
        \consists "Clef_engraver";
        \consists "Key_engraver";
        \consists "Time_signature_engraver";
index 5af3b0ba8f3a9ccfc942c455693b8e5f2a36a75c..8bd72aeb3845dadd4762fb07bc1dbd41559d31f2 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.17
-Entered-date: 24DEC99
+Version: 1.3.18
+Entered-date: 28DEC99
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.17.tar.gz 
+       1000k lilypond-1.3.18.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.17.tar.gz 
+       1000k lilypond-1.3.18.tar.gz 
 Copying-policy: GPL
 End
index 7a3311f3c15e9ae2ae2c3fea8f8a709149565851..d3436ae85ee798e8f558538208d1d01b226a67f0 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.17
+Version: 1.3.18
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.17.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.18.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # get Packager from (undocumented?) ~/.rpmmacros!
index 0fdc2bdc6a86b3084dd6a38ab8cc642b952b891d..fdeebb84038eedcc7cf763c4dd7511a4b87ebf1f 100644 (file)
@@ -20,6 +20,16 @@ fet_begingroup("noteheads");
 
 noteheight#:=interline#+ (1 + overdone_heads) *stafflinethickness#;
 define_pixels(noteheight);
+
+
+%%%%%%%%
+%
+%
+%
+% MENSURAL NOTATION
+%
+%
+%
 brevis_wid# := 2 interline#;
 
 def draw_brevis(expr brevwid) =
@@ -63,6 +73,99 @@ def draw_brevis(expr brevwid) =
 enddef;
 
 
+%
+% Some sources (eg Musix/OpusTeX think that the appendage should be on
+% the left, some say right. Right wins democratically.
+%
+def draw_longa (expr wid) =
+       draw_brevis(wid);
+       save theta;
+
+       x7r = head_width;
+       y7 = y5;
+%      z7 = z5;
+       z6 - z7 = (stem_width/2, -interline);
+       theta = angle(z6-z7)+ 90;
+       penpos7(stem_width, theta);
+       penpos6(1.2 stem_width, theta);
+       
+       fill z7r .. z6r{z6-z7} .. {z7-z6} z6l -- z7l -- cycle;
+       penlabels(6,7);
+enddef;
+
+%
+% En wij presenteren U: de opvolgster van Emily
+%
+% (ze is wel breed)
+% 
+fet_beginchar("Maxima notehead", "-3mensural", "mensuralmaximahead");
+       draw_longa (1.3 brevis_wid#)
+fet_endchar;
+
+fet_beginchar("Longa notehead", "-2mensural", "mensurallongahead");
+       draw_longa (brevis_wid#)
+fet_endchar;
+
+fet_beginchar("Brevis notehead", "-1mensural", "mensuralbrevishead")
+       draw_brevis(brevis_wid#);
+fet_endchar;
+
+def draw_mensural_black_head (expr wid) =
+       save head_width;
+       head_width# = wid;
+       set_char_box (0, head_width#, noteheight#/2, noteheight#/2);
+
+
+       y3 = y1 =0;
+       x2 = x4 = (x1 + x3) /2;
+       define_pixels (head_width);
+       pickup pencircle scaled blot_diameter;
+       top y2 = h;
+       bot y4 = -d;
+       lft x1 = 0;
+       rt x3 = w;
+
+       filldraw z1 -- z2 -- z3 -- z4 -- cycle;
+enddef;
+
+def draw_mensural_open_head (expr wid)=
+       draw_mensural_black_head (wid);
+       save diamNW, diamSW;
+       diamNW = length (z2 - z1) + blot_diameter;
+       diamSW = length (z4 - z1) + blot_diameter;
+       
+       save hole_widthNW, hole_widthSW;
+       hole_widthNW = 0.34 diamNW ;
+       hole_widthSW + 2.6 stafflinethickness = diamSW;
+
+       (z7 + z5)/2 = (w/2, 0);
+       (z8 + z6)/2 = (w/2, 0);
+       (z6 - z5) = hole_widthNW * unitvector (z2 - z1);
+       (z7 - z6) = hole_widthSW * unitvector (z4 - z1);
+
+       labels (1,2,3,4,5,6,7,8);
+
+       unfill z5 -- z6 -- z7 -- z8 --cycle;
+enddef;
+
+fet_beginchar("Mensural open head","0mensural","mensuralminimhead")
+       draw_mensural_open_head (interline#);
+fet_endchar;
+
+fet_beginchar("Mensural open head","1mensural","mensuralsemiminimhead")
+       draw_mensural_open_head (interline#);
+fet_endchar;
+
+fet_beginchar("Mensural black head","2mensural","fusahead")
+       draw_mensural_black_head (interline#);
+fet_endchar;
+
+
+%%%%%%%%%%%%
+%
+%
+% ledger (leger) lines
+%
 fet_beginchar("Ledger ending", "ledgerending", "ledgerending")
 set_char_box (5/2 ledgerlinethickness#, 5/2 ledgerlinethickness#,
                ledgerlinethickness#/2,ledgerlinethickness#/2);
@@ -81,28 +184,14 @@ set_char_box (5/2 ledgerlinethickness#, 5/2 ledgerlinethickness#,
        filldraw z1 --- z2 --- z3 --- z4 --- cycle ;
 fet_endchar;
 
-fet_beginchar("Brevis notehead", "-1", "brevishead")
-       draw_brevis(brevis_wid#);
-fet_endchar;
 
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%
 %
-% Some sources (eg Musix/OpusTeX think that the appendage should be on
-% the right, my only other ref [Willemze], shows an appendage to the left
 %
-fet_beginchar("Longa notehead", "-2", "longahead");
-       draw_brevis(brevis_wid#);
-       save theta;
-       z7 = z5;
-       z6 - z7 = (-stem_width/2, -interline);
-       theta = angle(z6-z7)+ 90;
-       penpos7(stem_width, theta);
-       penpos6(1.2 stem_width, theta);
-       
-       fill z7r .. z6r{z6-z7} .. {z7-z6} z6l -- z7l -- cycle;
-       penlabels(6,7);
-fet_endchar;
-
-
 % TODO: Document these!
 
 % setup user vars
@@ -149,9 +238,7 @@ fi
                
        enddef;
 
-% whole note
-% Wanske, p.38
-fet_beginchar("Whole notehead", "0", "wholehead")
+def draw_whole_head =
        setup_notehead_vars;
        
        a_b:=1.80;
@@ -175,6 +262,40 @@ fet_beginchar("Whole notehead", "0", "wholehead")
        notehead_calc;
        whole_notehead_width# := wd#;
        notehead_draw;
+enddef;
+
+
+%
+% dimensions aren't entirely right.
+%
+fet_beginchar ("Brevis notehead", "-1", "brevishead");
+       save stemthick, fudge;
+       define_pixels (stemthick);
+       fudge = blot_diameter /2;
+       stemthick# = 2 stafflinethickness#;
+
+       draw_whole_head;
+
+       pickup pencircle scaled stemthick;
+
+       bot y1 = -d;
+       top y2 = h;
+       rt x1 - fudge = 0;
+       x1 = x2;
+
+       fudge + lft x3 = w;
+       x4 = x3;
+       y4 = y2;
+       y3 = y1;
+
+       draw z1 -- z2;
+       draw z3 -- z4;
+fet_endchar;
+
+% whole note
+% Wanske, p.38
+fet_beginchar("Whole notehead", "0", "wholehead")
+       draw_whole_head;
 fet_endchar;
 
 
@@ -317,7 +438,6 @@ fet_beginchar("Quart diamondhead", "2diamond", "diamondhead")
        black:=black rotated tilt;
        black:=black shifted (w/2,0);
        fill black;
-
 fet_endchar;
 
 fet_beginchar("Crossed notehead", "2cross", "crossedhead")
@@ -332,69 +452,6 @@ fet_beginchar("Crossed notehead", "2cross", "crossedhead")
        draw (z1 .. z2) yscaled -1;
 fet_endchar
 
-def draw_harmonic_notehead(expr harmwid) =
-       save beamheight, head_width, head_char_width;
-       save stemthick;
-       save thin, thick;
-       save ht;
-       
-       head_width# = harmwid;
-
-       define_pixels(head_width);
-       
-       head_char_width = 1.54 noteheight;
-       head_char_width# := 1.54 ht#;
-
-
-       set_char_box(0, head_width#, head_width#/2, head_width#/2);
-
-       thin = stafflinethickness - blot_diameter/2;
-       thick = 2.2 stafflinethickness - blot_diameter/2;
-       penpos1(thick, 45);
-       penpos2(thin, 315);
-       penpos3(thin, 135);
-       penpos4(thick, 55);
-       penpos5(thick, 225);
-       penpos6(thin, 135);
-       penpos7(thin, 315);
-       penpos8(thick, 235);
-
-       
-       pickup pencircle scaled blot_diameter;
-
-       lft x1l = 0;
-       y1l = 0;
-
-       z2l = z1l;
-
-       bot y3l =  -noteheight/2;
-       x3l = head_width/2;
-       z4l = z3l;
-       rt x5l = head_width;
-       y5l =  0;
-       z6l = z5l;
-
-       top y7l = noteheight/2;
-       x7l = (head_width/2); 
-       z8l = z7l;
-
-       penlabels(1,2,3,4,5,6,7,8);
-       test_grid;
-       filldraw z1l -- z2r -- z7r -- z7l -- cycle;
-       filldraw z1l -- z1r -- z4r -- z4l -- cycle;
-       filldraw z3r -- z3l -- z6l -- z6r -- cycle;
-       filldraw z5r -- z5l -- z8l -- z8r -- cycle;
-enddef;
-
-harmonic_wid# := interline#;
-
-fet_beginchar("Harmonic notehead","2harmonic","harmonichead")
-       draw_harmonic_notehead(harmonic_wid#)
-fet_endchar;
-
-%fi
 
 fet_endgroup("noteheads");
-
 define_pixels(black_notehead_width);
index ad64170dff288c119ba782e0ea9b26c9c94c71f9..a50866f73ab20929db2c4efc36eb69ea83e310bb 100644 (file)
@@ -35,7 +35,7 @@ if test = 0:
        input feta-klef;
        input feta-timesig;
 else:
-%      input feta-bolletjes;   
+       input feta-bolletjes;   
 %      input feta-banier;
 %      input feta-eindelijk;
 %      input feta-klef;
index 32265045c85bd82a1ca045409fbecbf32fb075cd..9ec3c74e8b3a0cbdc823e2b52bfea59e2713f817 100644 (file)
@@ -74,14 +74,14 @@ def draw_c_clef (expr reduction) =
        draw_flare(z7r,180,-90,hair,norm-1/2hair);
        enddef;
 
-fet_beginchar ("C clef", "alto", "altoclef")
+fet_beginchar ("C clef", "C", "altoclef")
        if test = 1:
                draw_staff (-2,2);
        fi;
        draw_c_clef (1.0);
 fet_endchar;
 
-fet_beginchar ("C clef", "alto_change", "caltoclef")
+fet_beginchar ("C clef", "C_change", "caltoclef")
        if test = 1:
                draw_staff (-2,2);
        fi;
@@ -99,7 +99,7 @@ fet_endchar;
 % [Wanske] says that the extreme x point should be exactly between 
 % the dots, but her picture shows that the extreme is ~ 0.2 ss lower
 
-def draw_bass_klef(expr exact_center, reduction) = 
+def draw_bass_clef(expr exact_center, reduction) = 
        save reduced_il, left_tilt, left_thick, ball_to_right;
        reduced_il# = interline# * reduction;
        
@@ -154,14 +154,14 @@ enddef;
 
 
 
-fet_beginchar("F clef ", "bass", "bassclef")
+fet_beginchar("F clef ", "F", "bassclef")
        if test = 1:
                draw_staff(-3,1);
        fi;
-       draw_bass_klef((.5 interline#, 0), 1.0);
+       draw_bass_clef((.5 interline#, 0), 1.0);
 fet_endchar;
-fet_beginchar("F clef (reduced)", "bass_change", "cbassclef")
-       draw_bass_klef((.4 interline#, 0),0.8);
+fet_beginchar("F clef (reduced)", "F_change", "cbassclef")
+       draw_bass_clef((.4 interline#, 0),0.8);
 fet_endchar;
 
 
@@ -182,6 +182,9 @@ fet_endchar;
 % Ikzelf heb bijvoorbeeld over mijn eerste gave G-sleutel
 % 35 kilobyte metafont, 12 patchlevels, 0 vriendinnen en 45 dagen gedaan
 %
+%  -- vrij naar Van Kooten & De Bie
+%
+
 def draw_gclef (expr exact_center, reduction)=
        save reduced_il, downstroke_dir, downstroke_angle, hair, center;
        save breapth_factor, inner_thick_end, thinness, thickness, thinnib;
@@ -295,13 +298,13 @@ def draw_gclef (expr exact_center, reduction)=
 enddef;
 
 
-fet_beginchar("G clef", "treble", "trebleclef")
+fet_beginchar("G clef", "G", "trebleclef")
        if test = 1:
                draw_staff(-1,3);
        fi;
        draw_gclef((1.7 interline#,0), 1.0);
 fet_endchar;
-fet_beginchar("G clef", "treble_change", "ctrebleclef")
+fet_beginchar("G clef", "G_change", "ctrebleclef")
        draw_gclef((1.3 interline#,0), .8);
 fet_endchar;
 
index f6c90513b529f59b70d32b03ee8225b614fc9c55..38bf84720a23ee30030730b50783943052efbdd9 100644 (file)
@@ -6,6 +6,8 @@
 #ifndef MIDI2LY_GLOBAL_HH
 #define MIDI2LY_GLOBAL_HH
 
+#include <iostream.h>
+
 #include "string.hh"
 #include "proto.hh"
 
index b92a9bbbcfbf7a0f239a12d404ed9d17b8fd8126..260379e376f779c1c672a1a1daf2029b58e92161 100644 (file)
@@ -3,6 +3,7 @@
 //
 // copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
 
+#include <iostream.h>
 #include <assert.h>
 #include <locale.h>
 #include "config.h"
@@ -91,9 +92,9 @@ Long_option_init long_option_init_a[] =
   {0, "debug", 'd', _i ("enable debugging output")},
   {0, "help", 'h', _i ("this help")},
   {_i ("ACC[:MINOR]"), "key", 'k', _i ("set key: ACC +sharps/-flats; :1 minor")},
-  {0, "no-silly", 'n', _i ("assume no tuplets or double dots, smallest is 32")},
+  {0, "no-silly", 'n', _i ("don't output tuplets or double dots, smallest is 32")},
   {_i ("FILE"), "output", 'o', _i ("set FILE as default output")},
-  {0, "no-tuplets", 'p', _i ("assume no tuplets")},
+  {0, "no-tuplets", 'p', _i ("don't output tuplets")},
   {0, "quiet", 'q', _i ("be quiet")},
   {_i ("DUR"), "smallest", 's', _i ("set smallest duration")},
   {0, "no-timestamps", 'T', _i ("don't timestamp the output")},
index 4d5ec74abebe0269c6a6f2b577653e9033bb2821..f41b793d4d66d424b76490fa8ed5fe7b12cf6376 100644 (file)
@@ -43,7 +43,6 @@ Mudela_voice::get_clef () const
   if (!n)
     return "";
 
-  const int c0_pitch = 60;
   int p = n->pitch_i_;
 
   if (p < 56)
index 4f037b2c2171d29bd725f333d592c6520167bba3..97af8f52036ed19de93634d5688c6f91846c4e2c 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -304,18 +304,6 @@ msgstr "Kann Datei `%s' nicht finden"
 msgid "(search path: `%s')"
 msgstr "(Suchpfad: `%s')"
 
-#: ineq-constrained-qp.cc:169
-#, c-format
-msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
-msgstr "Ineq_constrained_qp::solve (): Constraint um %f verfehlt"
-
-#: ineq-constrained-qp.cc:233
-msgid "didn't converge!"
-msgstr "Keine Konvergenz!"
-
-#: ineq-constrained-qp.cc:235
-msgid "Too much degeneracy. "
-msgstr "Zu viel Verkommenheit."
 
 #: key-def.cc:31
 msgid "No key name: assuming `C'"
diff --git a/po/fr.po b/po/fr.po
new file mode 100644 (file)
index 0000000..18ca69f
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,1250 @@
+# it.po -- GNU LilyPond's french language file
+# Laurent Martelli <laurent@linuxfan.com>, 1998.
+#
+
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: lilypond 1.3.18\n"
+"PO-Revision-Date: 1999-12-28 00:32 +1\n"
+"Last-Translator: Laurent Martelli <laurent@linuxfan.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+
+#: data-file.cc:52
+#, fuzzy
+msgid "EOF in a string"
+msgstr "EOF dans une chaîne"
+
+#: data-file.cc:116 input.cc:86 midi-parser.cc:100 warn.cc:21
+msgid "warning: "
+msgstr "avertissement: "
+
+#: dstream.cc:158
+msgid "Not enough fields in Dstream init."
+msgstr "Pas assez de champs dans l'initialisation de Dstream."
+
+#: flower-debug.cc:17
+msgid "Debug output disabled.  Compiled with NPRINT."
+msgstr "Messages de deboggage désactivés. Compilé avec NPRINT."
+
+#: getopt-long.cc:141
+#, c-format
+msgid "option `%s' requires an argument"
+msgstr "l'option `%s' requiert un argument"
+
+#: getopt-long.cc:145
+#, c-format
+msgid "option `%s' doesn't allow an argument"
+msgstr "l'option `%s' n'accepte pas d'argument"
+
+#: getopt-long.cc:149
+#, c-format
+msgid "unrecognized option: `%s'"
+msgstr "option non reconnue: `%s'"
+
+#: getopt-long.cc:151
+#, c-format
+msgid "%c"
+msgstr ""
+
+#: getopt-long.cc:155
+#, c-format
+msgid "invalid argument `%s' to option `%s'"
+msgstr "argument `%s' invalide pour l'option `%s'"
+
+#: text-stream.cc:8
+msgid "<stdin>"
+msgstr ""
+
+#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:103
+#: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:21
+#, c-format
+msgid "can't open file: `%s'"
+msgstr "impossible d'ouvrir le fichier: `%s'"
+
+#: input.cc:91 warn.cc:7 warn.cc:15
+msgid "error: "
+msgstr "erreur: "
+
+#: input.cc:97
+msgid "Non fatal error: "
+msgstr "Erreur non fatale: "
+
+#: input.cc:105 source-file.cc:63 source-file.cc:156
+msgid "position unknown"
+msgstr "position inconnue"
+
+#: mapped-file-storage.cc:65
+msgid "map_fd: "
+msgstr ""
+
+#: mapped-file-storage.cc:74
+msgid "can't map file"
+msgstr "impossible de mapper le fichier"
+
+#: mapped-file-storage.cc:109
+msgid "vm_deallocate: "
+msgstr ""
+
+#: simple-file-storage.cc:56
+#, c-format
+msgid "Huh? got %d, expected %d characters"
+msgstr "Hein? %d caractères reçus, %d attendus"
+
+#: warn.cc:33
+msgid "Programming error: "
+msgstr "Erreur de programmation: "
+
+#: warn.cc:33
+msgid " (continuing; cross thumbs)"
+msgstr " (je continure; croisez les doigts)"
+
+#: afm.cc:129
+#, c-format
+msgid "can't find character called `%s'"
+msgstr "impossible de trouver le caractères appelé `%s'"
+
+#: afm.cc:154
+#, c-format
+msgid "can't find character number %d"
+msgstr "impossible de trouver le caractères numéro %d"
+
+#: all-font-metrics.cc:69
+#, c-format
+msgid "Can't find font `%s', loading default font."
+msgstr "Impossible de trouver la police `%s', chargement la police par défaut"
+
+#: all-font-metrics.cc:74
+#, c-format
+msgid "Can't find default font `%s', giving up."
+msgstr "Impossible de trouver la fonte par défaut `%s', abandon."
+
+#: all-font-metrics.cc:75
+#, c-format
+msgid "search path = %s"
+msgstr "chemin de recherche= %s"
+
+#: beam-engraver.cc:42
+msgid "No Beam to end"
+msgstr "Pas de barre à la fin (No beam to end)"
+
+#: beam-engraver.cc:58
+msgid "No beam to end"
+msgstr "Pas de barre à la fin (No beam to end)"
+
+#: beam-engraver.cc:87
+msgid "Already have a Beam"
+msgstr "Il y a déjà une barre"
+
+#: beam-engraver.cc:149
+msgid "Unfinished beam"
+msgstr "Barre non terminée"
+
+#: beam-engraver.cc:174
+msgid "Stem must have Rhythmic structure."
+msgstr "La tige doit avoir une structure rythmique."
+
+#: beam-engraver.cc:185
+msgid "stem doesn't fit in beam"
+msgstr "la tige ne rentre pas dans la barre"
+
+#: beam-engraver.cc:186
+msgid "beam was started here"
+msgstr "la barre a commencé ici"
+
+#: beam.cc:142
+msgid "beam with less than two stems"
+msgstr "barre avec moins de deux tiges"
+
+#: beam.cc:307
+msgid "weird beam shift, check your knees"
+msgstr "décallage de barre bizarre, check your knees"
+
+#: break-algorithm.cc:25
+msgid "0 lines"
+msgstr "0 ligne"
+
+#: break-algorithm.cc:27
+#, c-format
+msgid "1 line (of %.0f columns)"
+msgstr "1 ligne (de %.0f colonnes)"
+
+#: break-algorithm.cc:29
+#, c-format
+msgid "%d lines (with an average of %.1f columns)"
+msgstr "%d lignes (avec une moyenne de %.f colonnes)"
+
+#: break-algorithm.cc:148
+msgid "score does not have any columns"
+msgstr "la partition n'a aucune colonne"
+
+#: break-algorithm.cc:165
+#, fuzzy, c-format
+msgid "approximated %s"
+msgstr "approximativement %s"
+
+#: break-algorithm.cc:167
+#, fuzzy, c-format
+msgid "calculated %s exactly"
+msgstr "calculé %s exactement"
+
+#: break-algorithm.cc:168
+#, fuzzy, c-format
+msgid "elapsed time %.2f seconds"
+msgstr "temps ecoulé: %.2f secondes"
+
+#: change-iterator.cc:22
+#, c-format
+msgid "can't change `%s' to `%s'"
+msgstr "impossible de changer `%s' en `%s'"
+
+#: chord-tremolo-engraver.cc:41 chord-tremolo-engraver.cc:58
+msgid "No abbreviation beam to end"
+msgstr "Pas de barre d'abréviation à la fin"
+
+#: chord-tremolo-engraver.cc:83
+msgid "Already have an abbreviation beam"
+msgstr "Il y a déjà une barre d'abréviation"
+
+#: chord-tremolo-engraver.cc:124
+msgid "Unfinished abbreviation beam"
+msgstr "Barre d'abréviation non terminée"
+
+#: chord.cc:231
+#, c-format
+msgid "invalid subtraction: not part of chord: %s"
+msgstr "soustraction invalide: ne fait pas partie de l'accord: %s"
+
+#: chord.cc:245
+#, c-format
+msgid "invalid inversion pitch: not part of chord: %s"
+msgstr "renversement invalide: ne fait pas partie de l'accord: %s"
+
+#: clef-engraver.cc:178
+msgid "unknown clef type "
+msgstr "type de clé inconnu"
+
+#: collision.cc:95
+msgid "Too many clashing notecolumns. Ignoring them."
+msgstr "Trop de colonnes de notes superposées. Je les ignore."
+
+#: crescendo.cc:42
+msgid "crescendo"
+msgstr ""
+
+#: crescendo.cc:42
+msgid "too small"
+msgstr "trop petit"
+
+#: debug.cc:56
+msgid "Floating point exception"
+msgstr "Exceptions de virgule flottante"
+
+#: debug.cc:139
+msgid "can't set mem-checking"
+msgstr "impossible de positionner mem-checking"
+
+#: dimensions.cc:13
+msgid "NaN"
+msgstr ""
+
+#: dynamic-engraver.cc:109
+msgid "Got a dynamic already.  Continuing dazed and confused"
+msgstr ""
+
+#: dynamic-engraver.cc:162
+msgid "can't find (de)crescendo to end"
+msgstr "ne peut pas trouver un (de)crescendo à la fin"
+
+#: dynamic-engraver.cc:216
+msgid "Too many crescendi here"
+msgstr "Trop de crescendi ici"
+
+#: dynamic-engraver.cc:254
+msgid "unended crescendo"
+msgstr "crescendo non terminé"
+
+#: encompass-info.cc:32
+#, fuzzy
+msgid "Slur over rest?"
+msgstr ""
+
+#: encompass-info.cc:67 stem-info.cc:140
+msgid ""
+"minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"
+msgstr ""
+
+#: extender-engraver.cc:62
+msgid "unterminated extender"
+msgstr ""
+
+#: folded-repeat-iterator.cc:64
+msgid "No one to print a repeat brace"
+msgstr ""
+
+#: grace-iterator.cc:43
+msgid "No Grace context available!"
+msgstr ""
+
+#: grace-position-engraver.cc:89
+msgid "Unattached grace notes. Attaching to last musical column."
+msgstr ""
+
+#: hyphen-engraver.cc:60
+#, fuzzy
+msgid "unterminated hyphen"
+msgstr ""
+
+#: identifier.cc:46
+msgid "Wrong identifier type: "
+msgstr "Mauvais type d'indentifiant: "
+
+#: identifier.cc:47
+#, c-format
+msgid "%s expected"
+msgstr "%s attendu"
+
+#: includable-lexer.cc:47 midi-score-parser.cc:24 scores.cc:108 scores.cc:114
+#, c-format
+msgid "can't find file: `%s'"
+msgstr "ne peut pas trouver le fichier: `%s'"
+
+#: includable-lexer.cc:48
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Search path is `%s'\n"
+msgstr ""
+
+#: key-def.cc:31
+msgid "No key name: assuming `C'"
+msgstr "Pas de nom de clé: Do assumé"
+
+#: key-def.cc:92
+msgid "don't know how handle empty keys"
+msgstr "ne sait pas traiter les clés vides"
+
+#: lily-guile.cc:84 lily-guile.cc:107
+#, c-format
+msgid "Can not find file `%s'"
+msgstr "Ne peut pas trouver le fichier `%s'"
+
+#: lily-guile.cc:86 lily-guile.cc:109
+#, c-format
+msgid "(Load path is `%s'"
+msgstr ""
+
+#: local-key-engraver.cc:42
+msgid "out of tune"
+msgstr "hors de la tonalité"
+
+#: local-key-engraver.cc:42 time-signature-engraver.cc:28
+msgid "can't find"
+msgstr "pas trouvé"
+
+#: lookup.cc:103
+#, c-format
+msgid "Can't open `%s'\n"
+msgstr "Ne peut pas ouvrir `%s'\n"
+
+#: lookup.cc:104
+#, c-format
+msgid "Search path %s\n"
+msgstr "Chemin de recherche"
+
+#: lookup.cc:105
+msgid "Aborting"
+msgstr "Annulation"
+
+#: lookup.cc:436
+#, c-format
+msgid "Non-matching braces in text `%s', adding braces."
+msgstr ""
+
+#: main.cc:68
+msgid "BASENAME"
+msgstr ""
+
+#: main.cc:68
+msgid "write output to BASENAME[-x].extension"
+msgstr ""
+
+#: main.cc:69 main.cc:101
+#, fuzzy
+msgid "show warranty and copyright"
+msgstr ""
+
+#: main.cc:70 main.cc:92
+msgid "this help"
+msgstr "cette aide"
+
+#: main.cc:71
+#, fuzzy
+msgid "switch on experimental features"
+msgstr ""
+
+#: main.cc:72 main.cc:91
+#, fuzzy
+msgid "enable debugging output"
+msgstr ""
+
+#: main.cc:73 main.cc:95
+msgid "FILE"
+msgstr "FICHIER"
+
+#: main.cc:73
+#, fuzzy
+msgid "use FILE as init file"
+msgstr "utilise FICHIER comme fichier d'initialisation"
+
+#: main.cc:74
+msgid "DIR"
+msgstr "REP"
+
+#: main.cc:74
+#, fuzzy
+msgid "add DIR to search path"
+msgstr "ajoute REP au chemin de recherche"
+
+#: main.cc:75
+#, fuzzy
+msgid "produce midi output only"
+msgstr "produit seulement la sortie MIDI"
+
+#: main.cc:76
+#, fuzzy
+msgid "write Makefile dependencies for every input file"
+msgstr ""
+
+#: main.cc:77 main.cc:99
+#, fuzzy
+msgid "don't timestamp the output"
+msgstr ""
+
+#: main.cc:78
+#, fuzzy
+msgid "show all changes in relative syntax"
+msgstr ""
+
+#: main.cc:79
+#, fuzzy
+msgid "ignore mudela version"
+msgstr ""
+
+#: main.cc:80 main.cc:103
+msgid "print version number"
+msgstr "afficher le numéro de version"
+
+#: main.cc:81
+msgid "EXT"
+msgstr ""
+
+#: main.cc:81
+msgid "use output format EXT"
+msgstr ""
+
+#: main.cc:82
+#, fuzzy
+msgid "inhibit file output naming and exporting"
+msgstr ""
+
+#: main.cc:89
+#, c-format
+msgid "Usage: %s [OPTION]... [FILE]..."
+msgstr "Usage: %s [OPTION]... [FICHIER]..."
+
+#: main.cc:91
+#, fuzzy
+msgid "Typeset music and or play MIDI from FILE."
+msgstr ""
+
+#: main.cc:97 main.cc:115
+msgid "Options:"
+msgstr "Options: "
+
+#: main.cc:101
+#, fuzzy
+msgid "This binary was compiled with the following options:"
+msgstr "Cet exécutable a été compilé avec les options suivantes:"
+
+#: main.cc:118 main.cc:119
+msgid "Report bugs to"
+msgstr "Rapporter les bugs à"
+
+#: main.cc:52 main.cc:134
+#, c-format
+msgid ""
+"This is free software.  It is covered by the GNU General Public License,and "
+"you are welcome to change it and/or distribute copies of it undercertain "
+"conditions.  Invoke as `%s --warranty' for more information.\n"
+msgstr ""
+
+#: main.cc:59 main.cc:141 main.cc:153
+#, c-format
+msgid "Copyright (c) %s by"
+msgstr "Copyright (c) %s par"
+
+#. GNU GNU?
+#: main.cc:151
+msgid "GNU LilyPond -- The GNU Project music typesetter"
+msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU"
+
+#: main.cc:68 main.cc:159
+msgid ""
+"    This program is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License version 2\n"
+"as published by the Free Software Foundation.\n"
+"\n"
+"    This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n"
+"General Public License for more details.\n"
+"\n"
+"    You should have received a copy (refer to the file COPYING) of the\n"
+"GNU General Public License along with this program; if not, write to\n"
+"the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n"
+"USA.\n"
+msgstr ""
+
+#: midi-item.cc:303
+#, fuzzy, c-format
+msgid "No such instrument: `%s'"
+msgstr "Pas d'instrument tel: `%s'"
+
+#: midi-item.cc:357
+#, c-format
+msgid "unconventional key: flats: %d, sharps: %d"
+msgstr ""
+
+#: midi-item.cc:402
+msgid "silly duration"
+msgstr ""
+
+#: midi-item.cc:415
+msgid "silly pitch"
+msgstr ""
+
+#: midi-stream.cc:29 paper-stream.cc:36
+msgid "error syncing file (disk full?)"
+msgstr ")"
+
+#: music-output-def.cc:56
+msgid "Interpretation context with empty type"
+msgstr ""
+
+#: music-output-def.cc:83
+msgid "Can't find Score context"
+msgstr ""
+
+#: musical-request.cc:42
+#, c-format
+msgid "transposition by %s makes accidental larger than two"
+msgstr ""
+
+#: my-lily-lexer.cc:137
+#, c-format
+msgid "redeclaration of `\\%s'"
+msgstr ""
+
+#: my-lily-lexer.cc:143
+#, c-format
+msgid "Identifier name is a keyword (`%s')"
+msgstr ""
+
+#: my-lily-lexer.cc:172
+#, c-format
+msgid "error at EOF: %s"
+msgstr ""
+
+#: my-lily-parser.cc:60
+msgid "Parsing..."
+msgstr "Analyse..."
+
+#: my-lily-parser.cc:69
+msgid "braces don't match"
+msgstr ""
+
+#: paper-def.cc:95
+#, c-format
+msgid "unknown paper variable: `%s'"
+msgstr "variable papier inconnue: `%s'"
+
+#: paper-def.cc:99
+msgid "not a real variable"
+msgstr "pas une vrai variable"
+
+#. for now; breaks -fscm output
+#: paper-def.cc:251
+msgid "outputting Score, defined at: "
+msgstr ""
+
+#: paper-def.cc:280
+#, c-format
+msgid "Paper output to %s..."
+msgstr "Sortie papier vers %s..."
+
+#: mudela-stream.cc:85 paper-outputter.cc:76 performance.cc:97
+msgid ", at "
+msgstr ", à "
+
+#: paper-outputter.cc:130
+#, c-format
+msgid "Improbable offset for object type `%s'"
+msgstr ""
+
+#: paper-score.cc:131
+msgid "Can't solve this casting problem exactly; revert to Word_wrap"
+msgstr ""
+
+#: paper-score.cc:156
+msgid "Preprocessing elements..."
+msgstr ""
+
+#: paper-score.cc:160
+msgid "Calculating column positions..."
+msgstr "Calcul de la position des colonnes..."
+
+#: paper-score.cc:179
+msgid " elements. "
+msgstr " éléments. "
+
+#: paper-score.cc:182
+msgid "Line ... "
+msgstr "Ligne ..."
+
+#: performance.cc:50
+#, fuzzy
+msgid "Track ... "
+msgstr "Piste ... "
+
+#. perhaps multiple text events?
+#: performance.cc:77
+msgid "Creator: "
+msgstr "Auteur: "
+
+#: performance.cc:92
+msgid "Automatically generated"
+msgstr "Généré automatiquement"
+
+#: performance.cc:106
+#, c-format
+msgid "from musical definition: %s"
+msgstr ""
+
+#: performance.cc:174
+#, c-format
+msgid "MIDI output to %s..."
+msgstr ""
+
+#: qlpsolve.cc:88 qlpsolve.cc:139
+msgid "degenerate constraints"
+msgstr ""
+
+#: request-chord-iterator.cc:73
+#, c-format
+msgid "junking request: `%s'"
+msgstr ""
+
+#: request-chord-iterator.cc:76
+#, c-format
+msgid "Huh? Not a Request: `%s'"
+msgstr ""
+
+#: rest-collision.cc:64
+#, fuzzy
+msgid "Too many colliding rests."
+msgstr ""
+
+#: rest-collision.cc:68
+msgid "Too many notes for rest collision."
+msgstr ""
+
+#: score-engraver.cc:149
+#, c-format
+msgid "Unbound spanner `%s'"
+msgstr ""
+
+#: score.cc:56
+msgid "no toplevel translator"
+msgstr ""
+
+#: score.cc:59
+msgid "Interpreting music..."
+msgstr ""
+
+#: score.cc:70
+msgid "need music in a score"
+msgstr ""
+
+#. should we? hampers debugging.
+#: score.cc:83
+msgid "errors found, /*not processing score*/"
+msgstr ""
+
+#: score.cc:88
+#, c-format
+msgid "time: %.2f seconds"
+msgstr "durée: %.2f secondes"
+
+#: scores.cc:35
+#, c-format
+msgid "writing dependency file: `%s'..."
+msgstr ""
+
+#: scores.cc:79
+msgid "score contains errors; will not process it"
+msgstr ""
+
+#: scores.cc:109
+#, c-format
+msgid "Search path: %s"
+msgstr ""
+
+#: script-engraver.cc:49
+#, c-format
+msgid "don't know how to interpret articulation `%s'\n"
+msgstr ""
+
+#. this shouldn't happen, but let's continue anyway.
+#: single-malt-grouping-item.cc:42
+msgid "Single_malt_grouping_item: I've been drinking too much"
+msgstr ""
+
+#: slur-engraver.cc:64
+msgid "unterminated slur"
+msgstr ""
+
+#: slur-engraver.cc:80
+#, c-format
+msgid "can't find both ends of %s"
+msgstr ""
+
+#: slur-engraver.cc:80
+msgid "slur"
+msgstr ""
+
+#: slur.cc:39
+#, fuzzy
+msgid "Putting slur over rest. Ignoring"
+msgstr ""
+
+#: spacing-spanner.cc:215
+#, c-format
+msgid "can't find a ruling note at %s"
+msgstr ""
+
+#: spacing-spanner.cc:221
+#, c-format
+msgid "no minimum in measure at %s"
+msgstr ""
+
+#: spanner.cc:39
+msgid "left spanpoint is right spanpoint\n"
+msgstr ""
+
+#: spanner.cc:109
+#, c-format
+msgid "Spanner `%s' with equal left and right spanpoints"
+msgstr ""
+
+#: spring-spacer.cc:134
+msgid "I'm too fat; call Oprah"
+msgstr ""
+
+#: spring-spacer.cc:295
+msgid "solution doesn't satisfy constraints"
+msgstr ""
+
+#: stem-engraver.cc:80
+#, c-format
+msgid "Adding note head to incompatible stem (type = %d)"
+msgstr ""
+
+#: stem.cc:106
+msgid "weird stem size; check for narrow beams"
+msgstr ""
+
+#: tfm-reader.cc:108
+#, c-format
+msgid "TFM header of `%s' has only %u word(s)"
+msgstr ""
+
+#: tfm-reader.cc:146
+#, c-format
+msgid "%s: TFM file has %u parameters, which is more than the"
+msgstr ""
+
+#: tfm.cc:64
+#, c-format
+msgid "can't find ascii character `%d'"
+msgstr "ne peut pas trouver le caractère ascii `%d'"
+
+#: tie-engraver.cc:155 tie-performer.cc:106
+msgid "No ties were created!"
+msgstr "Aucune liaison n'a été crée"
+
+#: tie.cc:55
+msgid "lonely tie"
+msgstr "liaison solitaire"
+
+#: time-description.cc:17
+msgid "cadenza"
+msgstr "cadence"
+
+#: time-description.cc:106
+msgid "partial measure must be non-negative"
+msgstr "mesure partielle ne peut pas être négative"
+
+#: time-description.cc:108
+msgid "partial measure too large"
+msgstr "mesure partielle trop grande"
+
+#: time-scaled-music-iterator.cc:25
+msgid "No one to print a tuplet start bracket"
+msgstr ""
+
+#: time-signature-engraver.cc:28
+msgid "lost in time"
+msgstr "perdu dans le temps"
+
+#: timing-translator.cc:26
+msgid "conflicting timing request"
+msgstr ""
+
+#: timing-translator.cc:62
+msgid "time signature change not allowed here"
+msgstr ""
+
+#: timing-translator.cc:83
+#, c-format
+msgid "barcheck failed by: %s"
+msgstr ""
+
+#: translator-ctors.cc:39
+#, c-format
+msgid "unknown translator `%s'"
+msgstr "traducteur inconnu `%s'"
+
+#: translator-group.cc:82 translator-group.cc:97
+#, c-format
+msgid "Already contains a `%s'"
+msgstr "Contient déjà un `%s'"
+
+#: translator-group.cc:207
+#, c-format
+msgid "can't find or create `%s' called `%s'"
+msgstr "ne peut pas trouver ou créer `%s' nommé `%s'"
+
+#: translator-group.cc:341
+#, c-format
+msgid "can't find or create `%s'"
+msgstr "ne peut pas trouver ou créer `%s'"
+
+#: translator-group.cc:437 translator-group.cc:446
+#, c-format
+msgid "can't find `%s'"
+msgstr "ne peut pas trouver `%s'"
+
+#: transposed-music.cc:31
+msgid "Will ignore \\relative for transposed music"
+msgstr "\\relative sera ignoré pour la musique transposée"
+
+#: unfolded-repeat-iterator.cc:145
+msgid "No one to print a volta bracket"
+msgstr ""
+
+#: word-wrap.cc:75
+msgid "ugh, this measure is too long"
+msgstr "oops, cette mesure est trop longue"
+
+#: word-wrap.cc:76
+#, c-format
+msgid "breakpoint: %d"
+msgstr "point d'arrêt: %d"
+
+#: word-wrap.cc:77
+msgid "generating stupido solution"
+msgstr "génération de solutions stupides"
+
+#: word-wrap.cc:95
+msgid "I don't fit; put me on Montignac"
+msgstr ""
+
+#: parser.yy:55
+#, c-format
+msgid "Oldest supported input version: %s"
+msgstr "Plus ancienne version supportée: %s"
+
+#: parser.yy:313
+msgid "Cannot evaluate Scheme in safe mode"
+msgstr ""
+
+#: parser.yy:433 parser.yy:441 parser.yy:465
+msgid "Need a translator group for a context"
+msgstr ""
+
+#: parser.yy:459
+msgid "Wrong type for property value"
+msgstr "Mauvais type pour la valeur de la propriété"
+
+#: parser.yy:515
+msgid "More than one music block"
+msgstr "Plus d'un bloc de musique"
+
+#: parser.yy:946 parser.yy:1360 parser.yy:1380
+#, c-format
+msgid "not a duration: %d"
+msgstr "pas une durée: %d"
+
+#: parser.yy:948 parser.yy:1382
+msgid "can't abbreviate"
+msgstr "ne peut pas abréger"
+
+#: parser.yy:1211 parser.yy:1219 parser.yy:1444
+msgid "have to be in Lyric mode for lyrics"
+msgstr "il fayt être en mode Parole pour les paroles"
+
+#: parser.yy:1391
+msgid "have to be in Note mode for notes"
+msgstr "il faut être en mode Note pour les notes"
+
+#: parser.yy:1403
+#, fuzzy
+msgid "can't abbreviate tuplet"
+msgstr ""
+
+#: parser.yy:1450
+msgid "have to be in Chord mode for chords"
+msgstr "il faut être en mode Accord pour les accords"
+
+#: lexer.ll:155
+msgid "EOF found inside a comment"
+msgstr "EOF trouvé dans un commentaire"
+
+#: lexer.ll:199
+#, c-format
+msgid "undefined identifier: `%s'"
+msgstr "indentifiant non défini: `%s'"
+
+#. backup rule
+#: lexer.ll:204
+msgid "missing end quote"
+msgstr ""
+
+#. backup rule
+#: lexer.ll:227 lexer.ll:231
+msgid "white expected"
+msgstr "blanche attendue"
+
+#: lexer.ll:401
+#, fuzzy, c-format
+msgid "invalid character: `%c'"
+msgstr "caractères illégal: `%c'"
+
+#: lexer.ll:457
+#, c-format
+msgid "unknown escaped string: `\\%s'"
+msgstr "chaîne d'échappement inconnue: `\\%s'"
+
+#: lexer.ll:543
+#, c-format
+msgid "incorrect mudela version: %s (%s, %s)"
+msgstr "version de mudela incorrecte: %s (%s, %s)"
+
+#: out/BLURB.hh:2
+msgid ""
+"LilyPond is a music typesetter.  It produces beautiful sheet music\n"
+"using a high level description file as input.  LilyPond is part of \n"
+"the GNU Project.\n"
+"\n"
+msgstr "Lilypond est un formateur de musique. Il produit de belle\n"
+"paritions à partir de description de gaut niveau en entrée. Lilypond\n"
+"fait partie du projet GNU.\n"
+
+#: main.cc:90
+#, fuzzy
+msgid "write exact durations, e.g.: a4*385/384"
+msgstr ""
+
+#: main.cc:93
+msgid "ACC[:MINOR]"
+msgstr ""
+
+#: main.cc:93
+#, fuzzy
+msgid "set key: ACC +sharps/-flats; :1 minor"
+msgstr ""
+
+#: main.cc:94
+#, fuzzy
+msgid "assume no tuplets or double dots, smallest is 32"
+msgstr ""
+
+#: main.cc:95
+#, fuzzy
+msgid "set FILE as default output"
+msgstr "  -o, --output=FILE      set FILE come output di default\n"
+
+#: main.cc:96
+msgid "assume no tuplets"
+msgstr ""
+
+#: main.cc:97
+msgid "be quiet"
+msgstr "mode silencieux"
+
+#: main.cc:98
+msgid "DUR"
+msgstr ""
+
+#: main.cc:98
+#, fuzzy
+msgid "Set smallest duration (?)"
+msgstr "Positionne la plus petite durée (?)"
+
+#: main.cc:100
+msgid "mode bavard"
+msgstr ""
+
+#: main.cc:102
+#, fuzzy
+msgid "assume no double dotted notes"
+msgstr ""
+""
+
+#: main.cc:110
+#, c-format
+msgid "Usage: %s [OPTION]... [FILE]"
+msgstr "Usage: %s [OPTION... [FICHIER]"
+
+#: main.cc:112
+msgid "Translate midi-file to mudela"
+msgstr "Traduction du fichier MIDI en mudela"
+
+#: midi-parser.cc:64
+msgid "zero length string encountered"
+msgstr "chaîne de taille vide rencontrée"
+
+#: midi-score-parser.cc:44
+msgid "MIDI header expected"
+msgstr "entête MIDI attendue"
+
+#: midi-score-parser.cc:49
+msgid "Invalid header length"
+msgstr "Taille d'entête invalide"
+
+#: midi-score-parser.cc:52
+msgid "Invalid midi format"
+msgstr "Format MIDI invalide"
+
+#: midi-score-parser.cc:55
+msgid "Invalid number of tracks"
+msgstr "Nombre de pistes invalide"
+
+#: midi-score-parser.cc:58
+#, c-format
+msgid "can't handle %s"
+msgstr "ne peut pas traiter %s"
+
+#: midi-score-parser.cc:58
+msgid "non-metrical time"
+msgstr "temps non métrique"
+
+#: midi-score-parser.cc:94
+msgid "Parsing...\n"
+msgstr "Analyse...\n"
+
+#: midi-track-parser.cc:68
+#, c-format
+msgid "junking note-end event: channel = %d, pitch = %d"
+msgstr ""
+
+#: midi-track-parser.cc:124
+msgid "invalid running status"
+msgstr ""
+
+#: midi-track-parser.cc:328
+msgid "unimplemented MIDI meta-event"
+msgstr "meta-évènement MIDI non implémenté"
+
+#: midi-track-parser.cc:333
+msgid "invalid MIDI event"
+msgstr "évènement MIDI invalide"
+
+#: midi-track-parser.cc:348
+msgid "MIDI track expected"
+msgstr "piste MIDI attendue"
+
+#: midi-track-parser.cc:353
+msgid "invalid track length"
+msgstr "taille de piste invalide"
+
+#: mudela-item.cc:160
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr ""
+
+#: mudela-score.cc:108
+#, c-format
+msgid "Lily output to %s..."
+msgstr "Sortie de Lily vers %s..."
+
+#: mudela-score.cc:119 mudela-score.cc:168
+msgid "track "
+msgstr "piste "
+
+#: mudela-score.cc:155
+msgid "Processing..."
+msgstr "Traitement..."
+
+#: mudela-score.cc:164
+msgid "Creating voices..."
+msgstr "Création des voix..."
+
+#: mudela-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "PAS de filtrage du tempo..."
+
+#: mudela-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "PAS de quantification des colonnes..."
+
+#: mudela-score.cc:190
+msgid "Quantifying columns..."
+msgstr "Quantification des colonnes..."
+
+#: mudela-score.cc:223
+msgid "Settling columns..."
+msgstr ""
+
+#: mudela-staff.cc:111
+#, c-format
+msgid "% midi copyright:"
+msgstr ""
+
+#: mudela-staff.cc:112
+#, c-format
+msgid "% instrument:"
+msgstr ""
+
+#: mudela-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr "Niveau d'indentation de lily: %d"
+
+#: mudela-stream.cc:75
+msgid "% Creator: "
+msgstr "% Auteur: "
+
+#: mudela-stream.cc:80
+msgid "% Automatically generated"
+msgstr "% Généré automatiquement"
+
+#: mudela-stream.cc:89
+#, c-format
+msgid "% from input file: "
+msgstr "% dal file di input: "
+
+#, fuzzy
+#~ msgid "enable debugging output "
+#~ msgstr "  -D, --debug            abilita l'output di debugging\n"
+
+#, fuzzy
+#~ msgid "don't timestamp the output "
+#~ msgstr ""
+#~ "  -T, --no-timestamps    non inserisce marcatori temporali nell'output\n"
+
+#~ msgid "  -a, --about            about LilyPond\n"
+#~ msgstr "  -a, --about            cos'è LilyPond\n"
+
+#~ msgid "  -h, --help             this help\n"
+#~ msgstr "  -h, --help             questo help\n"
+
+#~ msgid "  -f, --output-format=X  use output format X\n"
+#~ msgstr "  -f, --output-format=X  usa il formato dell'ouput X\n"
+
+#~ msgid "  -o, --output=FILE      set FILE as default output base\n"
+#~ msgstr ""
+#~ "  -o, --output=FILE      indica FILE come base di default per l'output\n"
+
+#~ msgid "  -V, --ignore-version   ignore mudela version\n"
+#~ msgstr "  -V, --ignore-version   ignora la versione di mudela\n"
+
+#~ msgid "GNU LilyPond is Free software, see --warranty"
+#~ msgstr "GNU LilyPond è Free software, vedi --warranty"
+
+#~ msgid "  -D, --debug            enable debugging output\n"
+#~ msgstr "  -D, --debug            abilita l'output di debugging\n"
+
+#, fuzzy
+#~ msgid "  -p, --no-tuplets       assume no tuplets\n"
+#~ msgstr "  -p, --no-plets         assume che non ci siano gruppetti\n"
+
+#~ msgid "  -q, --quiet            be quiet\n"
+#~ msgstr "  -q, --quiet            sii silenzioso\n"
+
+#~ msgid ""
+#~ "  -s, --smallest=N       assume no shorter (reciprocal) durations than N\n"
+#~ msgstr ""
+#~ "  -s, --smallest=N       assume che non ci siano durate (reciproche) "
+#~ "inferiori a N\n"
+
+#~ msgid "  -v, --verbose          be verbose\n"
+#~ msgstr "  -v, --verbose          sii loquace\n"
+
+#, fuzzy
+#~ msgid "Midi2ly, translate midi to mudela"
+#~ msgstr "Mi2mu, tradice midi in mudela"
+
+#~ msgid "of"
+#~ msgstr "de"
+
+#~ msgid "please fix me"
+#~ msgstr "corrigez moi, s'il vous plait"
+
+#~ msgid "stem at %s doesn't fit in beam"
+#~ msgstr "Queue à %s ne rentre pas dans la barre"
+
+#~ msgid "No stem direction set. Ignoring column in clash."
+#~ msgstr "."
+
+#~ msgid "\\relative mode changed here, old value: "
+#~ msgstr "\\mode relatif changé ici, valeur précédante: "
+
+#~ msgid "ignoring zero duration added to column at %s"
+#~ msgstr "durée nulle ajoutée à la colonne à %s ignorée"
+
+#~ msgid "script needs stem direction"
+#~ msgstr "scipt a besoin de direction de la queue"
+
+#~ msgid "unconnected column: %d"
+#~ msgstr "colonne non connectée: %d"
+
+#~ msgid ""
+#~ "Staff_side::get_position_f(): somebody forgot to set my direction, returning "
+#~ "-20"
+#~ msgstr ""
+#~ "taff_side::get_position_f(): quelqu'un a oublié de positionner ma direction,  "
+#~ "je retourne -20"
+
+#~ msgid "have to be in Note mode for @chords"
+#~ msgstr "il faut être en mode Note pour @chords"
+
+#~ msgid ""
+#~ "LilyPond is the GNU Project music typesetter.  This program can print\n"
+#~ "beautiful sheet music from a music definition file.  It can also play\n"
+#~ "mechanical performances to a MIDI file.  Features include multiple\n"
+#~ "staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n"
+#~ "beams, slurs, triplets, named chords, transposing, formatting scores, \n"
+#~ "part extraction.  It includes a nice font of musical symbols.\n"
+#~ msgstr ""
+#~ "Lilypond est le formateur de musique du projet GNU. Ce programme peut\n"
+#~ "imprimer de belles partitions de musiques à partir d'un fichier de\n"
+#~ "définition de musique. Il peut aussi jouer automaiquement le morceau\n"
+#~ "vers un fichier midi. Ses caractéristiques incluent plusieurs portées,\n"
+#~ "mètre, clés, tonalités, paroles, language d'entrée polyvalent, cadences,\n"
+#~ "barres, liaison, triplets, accords nommés, transposition, formattage des\n"
+#~ "paritions, extraction de parties. Il inclue une jolie police de symbol\n"
+#~ "musicaux.\n"
index 6b8a5ba49a4618b14b210ccd335896d441d2fb79..4b630f530c8b210c930891e8947cdab4da4db8fd 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -318,19 +318,6 @@ msgid ""
 "Search path is `%s'\n"
 msgstr "(Il path di caricamento è `%s'"
 
-#: ineq-constrained-qp.cc:169
-#, c-format
-msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
-msgstr ""
-
-#: ineq-constrained-qp.cc:233
-msgid "didn't converge!"
-msgstr "non converge!"
-
-#: ineq-constrained-qp.cc:235
-msgid "Too much degeneracy. "
-msgstr "Troppa degenerazione. "
-
 #: key-def.cc:31
 msgid "No key name: assuming `C'"
 msgstr "Nessuna armatura di chiave: assumo Do'"
index 260670f53139332ce12e13343dbac3bdc05b014f..84c0384ca2920b68637ed2b01d2761e7fe00e353 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-09-16 20:29+0200\n"
+"POT-Creation-Date: 1999-12-28 00:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,18 +18,14 @@ msgstr ""
 msgid "EOF in a string"
 msgstr ""
 
-#: data-file.cc:116 input.cc:86 midi-parser.cc:100 warn.cc:21
+#: data-file.cc:116 input.cc:87 midi-parser.cc:100 warn.cc:22
 msgid "warning: "
 msgstr ""
 
-#: dstream.cc:158
+#: dstream.cc:184
 msgid "not enough fields in Dstream init"
 msgstr ""
 
-#: flower-debug.cc:17
-msgid "Debug output disabled.  Compiled with NPRINT."
-msgstr ""
-
 #: getopt-long.cc:141
 #, c-format
 msgid "Option `%s' requires an argument"
@@ -50,25 +46,25 @@ msgstr ""
 msgid "invalid argument `%s' to option `%s'"
 msgstr ""
 
-#: text-stream.cc:8
+#: text-stream.cc:9
 msgid "<stdin>"
 msgstr ""
 
-#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:104
-#: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:21
+#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:111
+#: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:22
 #, c-format
 msgid "Can't open file: `%s'"
 msgstr ""
 
-#: input.cc:91 warn.cc:7 warn.cc:15
+#: input.cc:92 warn.cc:8 warn.cc:16
 msgid "error: "
 msgstr ""
 
-#: input.cc:97
+#: input.cc:98
 msgid "Non fatal error: "
 msgstr ""
 
-#: input.cc:105 source-file.cc:63 source-file.cc:156
+#: input.cc:106 source-file.cc:62 source-file.cc:155
 msgid "position unknown"
 msgstr ""
 
@@ -81,51 +77,51 @@ msgstr ""
 msgid "Huh?  Got %d, expected %d characters"
 msgstr ""
 
-#: warn.cc:34
+#: warn.cc:35
 msgid "programming error: "
 msgstr ""
 
-#: warn.cc:34
+#: warn.cc:35
 msgid " (Continuing; cross thumbs)"
 msgstr ""
 
-#: warn.cc:40
-msgid "programming warning: "
-msgstr ""
-
-#: afm.cc:129
+#: afm.cc:128
 #, c-format
 msgid "Can't find character called: `%s'"
 msgstr ""
 
-#: afm.cc:154
+#: afm.cc:153
 #, c-format
 msgid "Can't find character number: %d"
 msgstr ""
 
-#: all-font-metrics.cc:69 lookup.cc:103
+#: all-font-metrics.cc:107 lookup.cc:96
 #, c-format
 msgid "Can't find font: `%s'"
 msgstr ""
 
-#: all-font-metrics.cc:70
+#: all-font-metrics.cc:108
 msgid "Loading default font"
 msgstr ""
 
-#: all-font-metrics.cc:75
+#: all-font-metrics.cc:113
 #, c-format
 msgid "Can't find default font: `%s'"
 msgstr ""
 
-#: all-font-metrics.cc:76
+#: all-font-metrics.cc:114
 #, c-format
-msgid "(search path: `%s)'"
+msgid "(search path: `%s'"
 msgstr ""
 
-#: all-font-metrics.cc:77
+#: all-font-metrics.cc:115
 msgid "Giving up"
 msgstr ""
 
+#: auto-change-iterator.cc:43 change-iterator.cc:60
+msgid "Can't switch translators, I'm there already"
+msgstr ""
+
 #: beam-engraver.cc:42 beam-engraver.cc:58
 msgid "no beam to end"
 msgstr ""
@@ -134,129 +130,101 @@ msgstr ""
 msgid "Already have a Beam"
 msgstr ""
 
-#: beam-engraver.cc:149
+#: beam-engraver.cc:142
 msgid "unfinished beam"
 msgstr ""
 
-#: beam-engraver.cc:174
+#: beam-engraver.cc:170
 msgid "Stem must have Rhythmic structure"
 msgstr ""
 
-#: beam-engraver.cc:185
+#: beam-engraver.cc:181
 msgid "Stem doesn't fit in beam"
 msgstr ""
 
-#: beam-engraver.cc:186
+#: beam-engraver.cc:182
 msgid "Beam was started here"
 msgstr ""
 
-#: beam.cc:147
-msgid "beam with less than two stems"
+#: beam.cc:85
+msgid "beam has less than two stems"
 msgstr ""
 
-#: beam.cc:312
+#: beam.cc:469
 msgid "weird beam vertical offset"
 msgstr ""
 
-#: break-algorithm.cc:28
-msgid "0 lines"
-msgstr ""
-
-#: break-algorithm.cc:30
-#, c-format
-msgid "1 line (of %.0f columns)"
-msgstr ""
-
-#: break-algorithm.cc:32
-#, c-format
-msgid "%d lines (with an average of %.1f columns)"
-msgstr ""
-
-#: break-algorithm.cc:155
+#: break-algorithm.cc:106
 msgid "Score does not have any columns"
 msgstr ""
 
-#: break-algorithm.cc:172
-#, c-format
-msgid "approximated %s"
-msgstr ""
-
-#: break-algorithm.cc:174
-#, c-format
-msgid "calculated %s exactly"
-msgstr ""
-
-#: break-algorithm.cc:175
-#, c-format
-msgid "elapsed time %.2f seconds"
-msgstr ""
-
 #: change-iterator.cc:22
 #, c-format
 msgid "Can't change `%s' to `%s'"
 msgstr ""
 
-#: change-iterator.cc:57
-msgid "Can't switch translators, I'm there already"
-msgstr ""
-
 #.
 #. 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_;
 #.
-#: change-iterator.cc:76
+#: change-iterator.cc:79
 msgid "I'm one myself"
 msgstr ""
 
-#: change-iterator.cc:79
+#: change-iterator.cc:82
 msgid "none of these in my family"
 msgstr ""
 
-#: chord-tremolo-engraver.cc:41 chord-tremolo-engraver.cc:58
+#: chord-tremolo-engraver.cc:40 chord-tremolo-engraver.cc:57
 msgid "no tremolo beam to end"
 msgstr ""
 
-#: chord-tremolo-engraver.cc:83
+#: chord-tremolo-engraver.cc:82
 msgid "Already have a tremolo beam"
 msgstr ""
 
-#: chord-tremolo-engraver.cc:124
+#: chord-tremolo-engraver.cc:125
 msgid "unfinished tremolo beam"
 msgstr ""
 
-#: chord.cc:231
+#: chord.cc:147
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr ""
 
-#: chord.cc:245
+#: chord.cc:365
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
-#: clef-engraver.cc:178
+#: clef-engraver.cc:151
 msgid "unknown clef type"
 msgstr ""
 
-#: collision.cc:95
+#: collision.cc:99
 msgid "Too many clashing notecolumns.  Ignoring them."
 msgstr ""
 
-#: crescendo.cc:42
+#: crescendo.cc:63
 msgid "crescendo"
 msgstr ""
 
-#: crescendo.cc:42
+#: crescendo.cc:63
 msgid "too small"
 msgstr ""
 
-#: debug.cc:56
+#: cross-staff.cc:17
+msgid ""
+"minVerticalAlign != maxVerticalAlign: cross staff spanners may be broken"
+msgstr ""
+
+#: debug.cc:30
 msgid "floating point exception"
 msgstr ""
 
-#: debug.cc:139
+#: debug.cc:54
 msgid "Can't set mem-checking!"
 msgstr ""
 
@@ -264,31 +232,22 @@ msgstr ""
 msgid "NaN"
 msgstr ""
 
-#: dynamic-engraver.cc:109
+#: dynamic-engraver.cc:105
 msgid "Got a dynamic already.  Continuing dazed and confused."
 msgstr ""
 
-#: dynamic-engraver.cc:162
+#: dynamic-engraver.cc:154
 msgid "Can't find (de)crescendo to end"
 msgstr ""
 
-#: dynamic-engraver.cc:216
+#: dynamic-engraver.cc:186
 msgid "Too many crescendi here"
 msgstr ""
 
-#: dynamic-engraver.cc:254
+#: dynamic-engraver.cc:224
 msgid "unended crescendo"
 msgstr ""
 
-#: encompass-info.cc:32
-msgid "Slur over rest?"
-msgstr ""
-
-#: encompass-info.cc:67 stem-info.cc:140
-msgid ""
-"minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"
-msgstr ""
-
 #: extender-engraver.cc:62
 msgid "unterminated extender"
 msgstr ""
@@ -301,6 +260,10 @@ msgstr ""
 msgid "no one to print a repeat brace"
 msgstr ""
 
+#: gourlay-breaking.cc:154
+msgid "No feasible line breaking found"
+msgstr ""
+
 #: grace-iterator.cc:43
 msgid "no Grace context available"
 msgstr ""
@@ -322,30 +285,17 @@ msgstr ""
 msgid "wrong identifier type, expected: `%s'"
 msgstr ""
 
-#: includable-lexer.cc:47 lily-guile.cc:82 lily-guile.cc:105
+#: includable-lexer.cc:47 lily-guile.cc:127 lily-guile.cc:150
 #: midi-score-parser.cc:24 scores.cc:108 scores.cc:114
 #, c-format
 msgid "Can't find file: `%s'"
 msgstr ""
 
-#: includable-lexer.cc:49 lookup.cc:104 scores.cc:109
+#: includable-lexer.cc:49 lookup.cc:97 scores.cc:109
 #, c-format
 msgid "(search path: `%s')"
 msgstr ""
 
-#: ineq-constrained-qp.cc:169
-#, c-format
-msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
-msgstr ""
-
-#: ineq-constrained-qp.cc:233
-msgid "Didn't converge!"
-msgstr ""
-
-#: ineq-constrained-qp.cc:235
-msgid "too much degeneracy"
-msgstr ""
-
 #: key-def.cc:31
 msgid "No key name, assuming `C'"
 msgstr ""
@@ -354,54 +304,50 @@ msgstr ""
 msgid "Don't know how handle empty keys"
 msgstr ""
 
-#: key-engraver.cc:70 key-performer.cc:65
+#: key-engraver.cc:77 key-performer.cc:65
 msgid "FIXME: key change merge"
 msgstr ""
 
-#: key.cc:54 key.cc:59
+#: key.cc:56 key.cc:61
 #, c-format
 msgid "Don't have that many octaves (%s)"
 msgstr ""
 
-#: key.cc:77
+#: key.cc:79
 #, c-format
 msgid "underdone accidentals (%s)"
 msgstr ""
 
-#: key.cc:82
+#: key.cc:84
 #, c-format
 msgid "overdone accidentals (%s)"
 msgstr ""
 
-#: lily-guile.cc:84 lily-guile.cc:107
+#: lily-guile.cc:129 lily-guile.cc:152
 #, c-format
 msgid "(load path: `%s')"
 msgstr ""
 
-#: line-of-score.cc:91
-msgid "Huh?  Empty Line_of_score?"
-msgstr ""
-
-#: local-key-engraver.cc:42
+#: local-key-engraver.cc:44
 msgid "out of tune:"
 msgstr ""
 
-#: local-key-engraver.cc:43 time-signature-engraver.cc:29
-#: translator-group.cc:437 translator-group.cc:446
+#: local-key-engraver.cc:45 time-signature-engraver.cc:29
+#: translator-group.cc:417 translator-group.cc:426
 #, c-format
 msgid "Can't find: `%s'"
 msgstr ""
 
-#: lookup.cc:105
+#: lookup.cc:98
 msgid "Aborting"
 msgstr ""
 
-#: lookup.cc:436
+#: lookup.cc:331
 #, c-format
 msgid "Non-matching braces in text `%s', adding braces"
 msgstr ""
 
-#: main.cc:71 main.cc:91
+#: main.cc:71 main.cc:92
 msgid "enable debugging output"
 msgstr ""
 
@@ -413,7 +359,7 @@ msgstr ""
 msgid "use output format EXT"
 msgstr ""
 
-#: main.cc:73 main.cc:92
+#: main.cc:73 main.cc:93
 msgid "this help"
 msgstr ""
 
@@ -425,7 +371,7 @@ msgstr ""
 msgid "add DIR to search path"
 msgstr ""
 
-#: main.cc:75 main.cc:95
+#: main.cc:75 main.cc:96
 msgid "FILE"
 msgstr ""
 
@@ -457,7 +403,7 @@ msgstr ""
 msgid "inhibit file output naming and exporting"
 msgstr ""
 
-#: main.cc:81 main.cc:99
+#: main.cc:81 main.cc:100
 msgid "don't timestamp the output"
 msgstr ""
 
@@ -469,11 +415,11 @@ msgstr ""
 msgid "ignore mudela version"
 msgstr ""
 
-#: main.cc:84 main.cc:100
+#: main.cc:84 main.cc:101
 msgid "print version number"
 msgstr ""
 
-#: main.cc:85 main.cc:102
+#: main.cc:85 main.cc:103
 msgid "show warranty and copyright"
 msgstr ""
 
@@ -486,20 +432,27 @@ msgstr ""
 msgid "Typeset music and or play MIDI from FILE"
 msgstr ""
 
-#: main.cc:100 main.cc:115
+#: main.cc:98
+msgid ""
+"LilyPond is a music typesetter.  It produces beautiful sheet music\n"
+"using a high level description file as input.  LilyPond is part of \n"
+"the GNU Project.\n"
+msgstr ""
+
+#: main.cc:104 main.cc:116
 msgid "Options:"
 msgstr ""
 
-#: main.cc:104
+#: main.cc:108
 msgid "This binary was compiled with the following options:"
 msgstr ""
 
-#: main.cc:119 main.cc:123
+#: main.cc:120 main.cc:127
 #, c-format
 msgid "Report bugs to %s"
 msgstr ""
 
-#: main.cc:52 main.cc:137
+#: main.cc:53 main.cc:141
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -507,17 +460,17 @@ msgid ""
 "certain conditions.  Invoke as `%s --warranty' for more information.\n"
 msgstr ""
 
-#: main.cc:59 main.cc:144 main.cc:156
+#: main.cc:60 main.cc:148 main.cc:160
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr ""
 
 #. GNU GNU?
-#: main.cc:154
+#: main.cc:158
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr ""
 
-#: main.cc:68 main.cc:162
+#: main.cc:69 main.cc:166
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -534,21 +487,21 @@ msgid ""
 "USA.\n"
 msgstr ""
 
-#: midi-item.cc:303
+#: midi-item.cc:307
 #, c-format
 msgid "no such instrument: `%s'"
 msgstr ""
 
-#: midi-item.cc:357
+#: midi-item.cc:361
 #, c-format
 msgid "unconventional key: flats: %d, sharps: %d"
 msgstr ""
 
-#: midi-item.cc:402
+#: midi-item.cc:406
 msgid "silly duration"
 msgstr ""
 
-#: midi-item.cc:415
+#: midi-item.cc:419
 msgid "silly pitch"
 msgstr ""
 
@@ -556,11 +509,11 @@ msgstr ""
 msgid "Error syncing file (disk full?)"
 msgstr ""
 
-#: music-output-def.cc:56
+#: music-output-def.cc:57
 msgid "Interpretation context with empty type"
 msgstr ""
 
-#: music-output-def.cc:83
+#: music-output-def.cc:84
 #, c-format
 msgid "Can't find `%s' context"
 msgstr ""
@@ -570,80 +523,61 @@ msgstr ""
 msgid "Transposition by %s makes accidental larger than two"
 msgstr ""
 
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:135
 #, c-format
 msgid "redeclaration of `\\%s'"
 msgstr ""
 
-#: my-lily-lexer.cc:143
+#: my-lily-lexer.cc:141
 #, c-format
 msgid "Identifier name is a keyword: `%s'"
 msgstr ""
 
-#: my-lily-lexer.cc:172
+#: my-lily-lexer.cc:170
 #, c-format
 msgid "error at EOF: %s"
 msgstr ""
 
-#: midi-score-parser.cc:94 my-lily-parser.cc:60
+#: midi-score-parser.cc:94 my-lily-parser.cc:61
 msgid "Parsing..."
 msgstr ""
 
-#: my-lily-parser.cc:69
+#: my-lily-parser.cc:70
 msgid "Braces don't match"
 msgstr ""
 
-#: p-col.cc:48
+#: paper-column.cc:48
 msgid "Must set spring between differing columns"
 msgstr ""
 
-#: paper-def.cc:95
+#: paper-def.cc:69
 #, c-format
 msgid "unknown paper variable: `%s'"
 msgstr ""
 
-#: paper-def.cc:99
+#: paper-def.cc:73
 msgid "not a real variable"
 msgstr ""
 
-#. for now; breaks -fscm output
-#: paper-def.cc:251
-msgid "Outputting Score, defined at: "
-msgstr ""
-
-#: paper-def.cc:280
+#: paper-def.cc:207
 #, c-format
 msgid "paper output to %s..."
 msgstr ""
 
-#: mudela-stream.cc:86 paper-outputter.cc:76 performance.cc:97
+#: mudela-stream.cc:93 paper-outputter.cc:58 performance.cc:95
 msgid ", at "
 msgstr ""
 
-#: paper-outputter.cc:130
-#, c-format
-msgid "improbable offset for object type: `%s'"
-msgstr ""
-
-#: paper-score.cc:131
-msgid "Can't solve this casting problem exactly; reverting to Word_wrap"
-msgstr ""
-
-#: paper-score.cc:156
+#: paper-score.cc:115
 msgid "Preprocessing elements..."
 msgstr ""
 
-#: paper-score.cc:160
+#: paper-score.cc:120
 msgid "Calculating column positions..."
 msgstr ""
 
-#: paper-score.cc:179
-#, c-format
-msgid "%s elements"
-msgstr ""
-
-#: paper-score.cc:182
-msgid "Line ... "
+#: paper-score.cc:147
+msgid "Outputting Score, defined at: "
 msgstr ""
 
 #: performance.cc:50
@@ -651,29 +585,25 @@ msgid "Track ... "
 msgstr ""
 
 #. perhaps multiple text events?
-#: performance.cc:77
+#: performance.cc:75
 msgid "Creator: "
 msgstr ""
 
-#: performance.cc:92
+#: performance.cc:90
 msgid "Automatically generated"
 msgstr ""
 
-#: performance.cc:106
+#: performance.cc:104
 #, c-format
 msgid "from musical definition: %s"
 msgstr ""
 
-#: performance.cc:174
+#: performance.cc:172
 #, c-format
 msgid "MIDI output to %s..."
 msgstr ""
 
-#: qlpsolve.cc:88 qlpsolve.cc:139
-msgid "degenerate constraints"
-msgstr ""
-
-#: repeat-engraver.cc:177
+#: repeat-engraver.cc:192
 msgid "No bar engraver found.  Ignoring repeats."
 msgstr ""
 
@@ -687,15 +617,15 @@ msgstr ""
 msgid "Huh?  Not a Request: `%s'"
 msgstr ""
 
-#: rest-collision.cc:64
+#: rest-collision.cc:76
 msgid "too many colliding rests"
 msgstr ""
 
-#: rest-collision.cc:68
+#: rest-collision.cc:80
 msgid "too many notes for rest collision"
 msgstr ""
 
-#: score-engraver.cc:149
+#: score-engraver.cc:135
 #, c-format
 msgid "unbound spanner `%s'"
 msgstr ""
@@ -708,16 +638,16 @@ msgstr ""
 msgid "Interpreting music..."
 msgstr ""
 
-#: score.cc:70
+#: score.cc:71
 msgid "Need music in a score"
 msgstr ""
 
 #. should we? hampers debugging.
-#: score.cc:83
+#: score.cc:84
 msgid "Errors found/*, not processing score*/"
 msgstr ""
 
-#: score.cc:88
+#: score.cc:89
 #, c-format
 msgid "elapsed time: %.2f seconds"
 msgstr ""
@@ -731,86 +661,65 @@ msgstr ""
 msgid "Score contains errors; will not process it"
 msgstr ""
 
-#: script-engraver.cc:49
+#: script-engraver.cc:48
 #, c-format
 msgid "Don't know how to interpret articulation `%s'"
 msgstr ""
 
-#: sequential-music-iterator.cc:82
+#: sequential-music-iterator.cc:83
 msgid "Must stop before this music ends"
 msgstr ""
 
 #. this shouldn't happen, but let's continue anyway.
-#: single-malt-grouping-item.cc:43
+#: single-malt-grouping-item.cc:54
 msgid "Single_malt_grouping_item:  I've been drinking too much"
 msgstr ""
 
-#: slur-engraver.cc:64
+#: slur-engraver.cc:66
 msgid "unterminated slur"
 msgstr ""
 
-#: slur-engraver.cc:80
+#: slur-engraver.cc:82
 #, c-format
 msgid "Can't find both ends of %s"
 msgstr ""
 
-#: slur-engraver.cc:80
+#: slur-engraver.cc:82
 msgid "slur"
 msgstr ""
 
-#: slur.cc:38
+#: slur.cc:41
 msgid "Putting slur over rest.  Ignoring."
 msgstr ""
 
-#: spanner.cc:41
-msgid "Left spanpoint is right spanpoint"
-msgstr ""
-
-#: spanner.cc:111
-#, c-format
-msgid "Spanner `%s' has equal left and right spanpoints"
-msgstr ""
-
-#: spanner.cc:143
-msgid "spanner with negative length"
-msgstr ""
-
-#: spring-spacer.cc:134
-msgid "I'm too fat; call Oprah"
+#: slur.cc:89
+msgid "Slur over rest?"
 msgstr ""
 
-#: spring-spacer.cc:299
-msgid "Solution doesn't satisfy constraints"
+#: spanner.cc:33
+msgid "Left spanpoint is right spanpoint"
 msgstr ""
 
-#: spring-spacer.cc:400
+#: spanner.cc:100
 #, c-format
-msgid "Improbable distance: %f point, setting to 10 mm"
-msgstr ""
-
-#: spring-spacer.cc:405
-msgid "Negative distance, setting to 10 mm"
+msgid "Spanner `%s' has equal left and right spanpoints"
 msgstr ""
 
-#: stem-engraver.cc:80
+#: stem-engraver.cc:83
 #, c-format
 msgid "Adding note head to incompatible stem (type = %d)"
 msgstr ""
 
-#: stem.cc:26
-msgid "stem direction set already!"
-msgstr ""
-
-#: stem.cc:106
+#: stem.cc:117
 msgid "Weird stem size; check for narrow beams"
 msgstr ""
 
-#: tfm-reader.cc:108
+#: tfm-reader.cc:115
 #, c-format
 msgid "TFM header of `%s' has only %u word(s)"
 msgstr ""
 
-#: tfm-reader.cc:146
+#: tfm-reader.cc:153
 #, c-format
 msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
 msgstr ""
@@ -820,30 +729,14 @@ msgstr ""
 msgid "Can't find ascii character: `%d'"
 msgstr ""
 
-#: tie-engraver.cc:91
-msgid "unequal number of note heads for tie"
-msgstr ""
-
-#: tie-engraver.cc:155 tie-performer.cc:106
+#: tie-engraver.cc:146 tie-performer.cc:106
 msgid "No ties were created!"
 msgstr ""
 
-#: tie.cc:55
+#: tie.cc:65
 msgid "lonely tie"
 msgstr ""
 
-#: time-description.cc:17
-msgid "cadenza"
-msgstr ""
-
-#: time-description.cc:106
-msgid "Partial measure must be non-negative"
-msgstr ""
-
-#: time-description.cc:108
-msgid "partial measure too large"
-msgstr ""
-
 #: time-scaled-music-iterator.cc:25
 msgid "no one to print a tuplet start bracket"
 msgstr ""
@@ -852,15 +745,11 @@ msgstr ""
 msgid "lost in time:"
 msgstr ""
 
-#: timing-translator.cc:26
+#: timing-translator.cc:28
 msgid "conflicting timing request"
 msgstr ""
 
-#: timing-translator.cc:62
-msgid "time signature change not allowed here"
-msgstr ""
-
-#: timing-translator.cc:83
+#: timing-translator.cc:69
 #, c-format
 msgid "barcheck failed at: %s"
 msgstr ""
@@ -870,21 +759,21 @@ msgstr ""
 msgid "unknown translator: `%s'"
 msgstr ""
 
-#: translator-group.cc:78 translator-group.cc:91
+#: translator-group.cc:81 translator-group.cc:94
 msgid "Program has no such type"
 msgstr ""
 
-#: translator-group.cc:82 translator-group.cc:97
+#: translator-group.cc:85 translator-group.cc:100
 #, c-format
 msgid "Already contains: `%s'"
 msgstr ""
 
-#: translator-group.cc:207
+#: translator-group.cc:210
 #, c-format
 msgid "Can't find or create `%s' called `%s'"
 msgstr ""
 
-#: translator-group.cc:341
+#: translator-group.cc:323
 #, c-format
 msgid "Can't find or create: `%s'"
 msgstr ""
@@ -897,172 +786,148 @@ msgstr ""
 msgid "no one to print a volta bracket"
 msgstr ""
 
-#: word-wrap.cc:75
-#, c-format
-msgid "Ugh, this measure is too long, breakpoint: %d"
-msgstr ""
-
-#: word-wrap.cc:77
-msgid "Generating stupido solution"
-msgstr ""
-
-#: word-wrap.cc:95
-msgid "I don't fit; put me on Montignac"
-msgstr ""
-
-#: parser.yy:55
+#: parser.yy:60
 #, c-format
 msgid "Oldest supported input version: %s"
 msgstr ""
 
-#: parser.yy:313
-msgid "Can't evaluate Scheme in safe mode"
-msgstr ""
-
-#: parser.yy:433 parser.yy:441 parser.yy:465
+#: parser.yy:433
 msgid "Need a translator group for a context"
 msgstr ""
 
-#: parser.yy:459
+#: parser.yy:454
 msgid "Wrong type for property value"
 msgstr ""
 
-#: parser.yy:515
+#: parser.yy:504
 msgid "More than one music block"
 msgstr ""
 
-#: parser.yy:575
-msgid "Need even number of args for shape array"
-msgstr ""
-
-#: parser.yy:723
+#: parser.yy:700
 msgid "More alternatives than repeats.  Junking excess alternatives."
 msgstr ""
 
-#: parser.yy:946 parser.yy:1360 parser.yy:1380
+#: parser.yy:930 parser.yy:1335 parser.yy:1355
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
-#: parser.yy:948 parser.yy:1382
+#: parser.yy:932 parser.yy:1357
 msgid "Can't abbreviate"
 msgstr ""
 
-#: parser.yy:1076
+#: parser.yy:1052
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1211 parser.yy:1219 parser.yy:1444
+#: parser.yy:1186 parser.yy:1194 parser.yy:1419
 msgid "Have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:1391
+#: parser.yy:1366
 msgid "Have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:1403
+#: parser.yy:1378
 msgid "Can't abbreviate tuplet"
 msgstr ""
 
-#: parser.yy:1450
+#: parser.yy:1425
 msgid "Have to be in Chord mode for chords"
 msgstr ""
 
-#: lexer.ll:155
+#: lexer.ll:158
 msgid "EOF found inside a comment"
 msgstr ""
 
-#: lexer.ll:169
+#: lexer.ll:172
 msgid "\\maininput disallowed outside init files"
 msgstr ""
 
-#: lexer.ll:199
+#: lexer.ll:202
 #, c-format
 msgid "undefined identifier: `%s'"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:204
+#: lexer.ll:207
 msgid "Missing end quote"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:227 lexer.ll:231
+#: lexer.ll:229 lexer.ll:233
 msgid "white expected"
 msgstr ""
 
-#: lexer.ll:401
+#: lexer.ll:241
+msgid "Can't evaluate Scheme in safe mode"
+msgstr ""
+
+#: lexer.ll:436
 #, c-format
 msgid "invalid character: `%c'"
 msgstr ""
 
-#: lexer.ll:457
+#: lexer.ll:492
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr ""
 
-#: lexer.ll:543
+#: lexer.ll:578
 #, c-format
 msgid "incorrect mudela version: %s (%s, %s)"
 msgstr ""
 
-#: out/BLURB.hh:2
-msgid ""
-"LilyPond is a music typesetter.  It produces beautiful sheet music\n"
-"using a high level description file as input.  LilyPond is part of \n"
-"the GNU Project.\n"
-msgstr ""
-
-#: main.cc:90
+#: main.cc:91
 msgid "write exact durations, e.g.: a4*385/384"
 msgstr ""
 
-#: main.cc:93
+#: main.cc:94
 msgid "ACC[:MINOR]"
 msgstr ""
 
-#: main.cc:93
+#: main.cc:94
 msgid "set key: ACC +sharps/-flats; :1 minor"
 msgstr ""
 
-#: main.cc:94
+#: main.cc:95
 msgid "assume no tuplets or double dots, smallest is 32"
 msgstr ""
 
-#: main.cc:95
+#: main.cc:96
 msgid "set FILE as default output"
 msgstr ""
 
-#: main.cc:96
+#: main.cc:97
 msgid "assume no tuplets"
 msgstr ""
 
-#: main.cc:97
+#: main.cc:98
 msgid "be quiet"
 msgstr ""
 
-#: main.cc:98
+#: main.cc:99
 msgid "DUR"
 msgstr ""
 
-#: main.cc:98
+#: main.cc:99
 msgid "set smallest duration"
 msgstr ""
 
-#: main.cc:101
+#: main.cc:102
 msgid "be verbose"
 msgstr ""
 
-#: main.cc:103
+#: main.cc:104
 msgid "assume no double dotted notes"
 msgstr ""
 
-#: main.cc:110
+#: main.cc:111
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr ""
 
-#: main.cc:112
+#: main.cc:113
 msgid "Translate MIDI-file to mudela"
 msgstr ""
 
@@ -1158,11 +1023,11 @@ msgstr ""
 msgid "Settling columns..."
 msgstr ""
 
-#: mudela-staff.cc:177
+#: mudela-staff.cc:178
 msgid "% MIDI copyright:"
 msgstr ""
 
-#: mudela-staff.cc:178
+#: mudela-staff.cc:179
 msgid "% MIDI instrument:"
 msgstr ""
 
@@ -1172,15 +1037,15 @@ msgid "lily indent level: %d"
 msgstr ""
 
 #. Maybe better not to translate these?
-#: mudela-stream.cc:76
+#: mudela-stream.cc:83
 msgid "% Creator: "
 msgstr ""
 
-#: mudela-stream.cc:81
+#: mudela-stream.cc:88
 msgid "% Automatically generated"
 msgstr ""
 
-#: mudela-stream.cc:90
+#: mudela-stream.cc:97
 #, c-format
 msgid "% from input file: "
 msgstr ""
index ad93e68e2f1897377245d6ebac39f84d54f90ad0..dffd167186718ad57b80f1a89c7bd9b3e2859439 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -26,7 +26,7 @@ msgstr "onvoldoende velden in Dstream init"
 
 #: flower-debug.cc:17
 msgid "Debug output disabled.  Compiled with NPRINT."
-msgstr "Ontluis berichten zijn uitgeschakeld.  Vertaald met NPRINT."
+msgstr "Ontluisberichten zijn uitgeschakeld.  Vertaald met NPRINT."
 
 #: getopt-long.cc:141
 #, c-format
@@ -87,10 +87,6 @@ msgstr "programmeerfout: "
 msgid " (Continuing; cross thumbs)"
 msgstr " (Ga verder; duim maar)"
 
-#: warn.cc:40
-msgid "programming warning: "
-msgstr "programmeerwaarschuwing: "
-
 #: afm.cc:129
 #, c-format
 msgid "Can't find character called: `%s'"
@@ -129,8 +125,8 @@ msgid "no beam to end"
 msgstr "geen balk te beëindigen"
 
 #: beam-engraver.cc:87
-msgid "Already have a Beam"
-msgstr "Heb al een Balk"
+msgid "Already have a beam"
+msgstr "Heb al een balk"
 
 #: beam-engraver.cc:149
 msgid "unfinished beam"
@@ -335,19 +331,6 @@ msgstr "Kan bestand niet vinden: `%s'"
 msgid "(search path: `%s')"
 msgstr "(zoekpad: `%s')"
 
-#: ineq-constrained-qp.cc:169
-#, c-format
-msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
-msgstr "Ineq_constrained_qp::solve (): voorwaarde zit er %f naast"
-
-#: ineq-constrained-qp.cc:233
-msgid "Didn't converge!"
-msgstr "Convergeerde niet!"
-
-#: ineq-constrained-qp.cc:235
-msgid "too much degeneracy"
-msgstr "te veel degenaratie"
-
 #: key-def.cc:31
 msgid "No key name, assuming `C'"
 msgstr "Geen toonsoort, ga uit van `C'"
@@ -461,7 +444,7 @@ msgstr "verbied naamgeving van uitvoer bestand en exportering"
 
 #: main.cc:81 main.cc:99
 msgid "don't timestamp the output"
-msgstr "geen tijdstempel in de uitvoer"
+msgstr "geen tijdsstempel in de uitvoer"
 
 #: main.cc:82
 msgid "switch on experimental features"
@@ -477,7 +460,7 @@ msgstr "druk versienummer af"
 
 #: main.cc:85 main.cc:102
 msgid "show warranty and copyright"
-msgstr "toon garantie en copyright"
+msgstr "toon garantie en auteursrechten"
 
 #: main.cc:92
 #, c-format
@@ -546,8 +529,8 @@ msgstr ""
 "versie 2, zoals gepubliceerd door de Free Software Foundation.\n"
 "\n"
 "    Dit programma wordt verspreid in de hoop dat het nuttig zal zijn,\n"
-"maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie voor\n"
-"het UITBATEN of als zijnde GESCHIKT VOOR EEN BEPAALD DOEL.  Zie de GNU\n"
+"maar ZONDER ENIGE GARANTIE; zelfs zonder impliciete garantie voor\n"
+"UITBATING of als zijnde GESCHIKT VOOR EEN BEPAALD DOEL.  Zie de GNU\n"
 "Algemene Openbare Licentie voor details.\n"
 "\n"
 "    Als het goed is, heeft u bij dit programma een exemplaar (zie het\n"
@@ -1061,7 +1044,7 @@ msgstr "zet BESTAND als verstek uitvoer"
 
 #: main.cc:96
 msgid "assume no tuplets"
-msgstr "ga niet uit van n-olen"
+msgstr "gebruik geen antimetrische figuren"
 
 #: main.cc:97
 msgid "be quiet"
@@ -1081,7 +1064,7 @@ msgstr "wees breedsprakig"
 
 #: main.cc:103
 msgid "assume no double dotted notes"
-msgstr "ga niet uit van dubbel gepunkteerde noten"
+msgstr "ga niet uit van dubbel gepunteerde noten"
 
 #: main.cc:110
 #, c-format
@@ -1094,7 +1077,7 @@ msgstr "Vertaal MIDI-bestand naar mudela"
 
 #: midi-parser.cc:64
 msgid "zero length string encountered"
-msgstr "nul-lengte string tegengekomen"
+msgstr "string van lengte nul tegengekomen"
 
 #: midi-score-parser.cc:44
 msgid "MIDI header expected"
@@ -1127,7 +1110,7 @@ msgstr "ongeldige lopende status"
 
 #: midi-track-parser.cc:328
 msgid "unimplemented MIDI meta-event"
-msgstr "ongeïmplementeerde MIDI meta-gebeurtenis"
+msgstr "MIDI meta-gebeurtenis niet geïmplementeerd"
 
 #: midi-track-parser.cc:333
 msgid "invalid MIDI event"
index 9e47ccbf307178aa7a0302b33360eb2884e30e3b..5c33765f146618d017d3c8a95cb265c08e68284a 100644 (file)
@@ -68,7 +68,7 @@
 (define staff-symbol-properties
   (cons "Staff_symbol" (list
                        (list 'numberOfStaffLines number? 'line-count)
-                       (list 'staffLineLeading number? 'staff-space)
+                       (list 'staffSpace number? 'staff-space)
                        )
        )
   )
index f35e747fef51aaea91eb68e76182d5e647a3c4aa..3ab025c5fd32a83b7998f12b4b3796bdcdccdeb5 100644 (file)
 (define (font-command name-mag)
     (cons name-mag
          (string-append  "magfont"
-                         (string-encode-integer (hash (car name-mag) 1000000))
+                         (string-encode-integer (hashq (car name-mag) 1000000))
                          "m"
                          (string-encode-integer (cdr name-mag)))
 
    (else (begin (display "programming error: scm->string: ") (newline) "'"))
    ))
 
+(define (index-cell cell dir)
+  (if (equal? dir 1)
+      (cdr cell)
+      (car cell))
+  )
+
+
+;
+; How should a  bar line behave at a break? 
+;
+(define (break-barline glyph dir)
+   (let ((result (assoc glyph 
+                       '((":|:" . (":|" . "|:"))
+                         ("|" . ("|" . ""))
+                         ("|s" . (nil . "|"))
+                         ("|:" . ("|" . "|:"))
+                         ("|." . ("|." . nil))
+                         (":|" . (":|" . nil))
+                         ("||" . ("||" . nil))
+                         (".|." . (".|." . nil))
+                         ("scorebar" . (nil . "scorepostbreak"))
+                         ("brace" . (nil . "brace"))
+                         ("bracket" . (nil . "bracket"))  
+                         )
+                       )))
+
+     (if (equal? result #f)
+        (ly-warn (string-append "Unknown bar glyph: `" glyph "'"))
+        (index-cell (cdr result) dir))
+     )
+   )
+     
+
index 7328a1b9b713023ab315b6da9e11e0c84271502b..5d91080465d3cd9182e81b2e4bdef4452deee704 100644 (file)
@@ -405,6 +405,13 @@ if 1:
 
        conversions.append ((1,3,17), conv, 'stemStyle -> flagStyle')
 
+if 1:
+       def conv (str):
+               return re.sub ('staffLineLeading'
+                              'staffSpace',
+                              str)
+       conversions.append ((1,3,18), conv, "staffLineLeading -> staffSpace")
+
 ############################
        
 
index e4114a7de88d0eee513cf065db00a53c4468738b..f84a660505a2b555461f3e1d4be0b6f57b0ff6c8 100644 (file)
@@ -42,7 +42,7 @@ latex_linewidths = {
         'executive':{10: 167, 11: 175, 12: 184}}}
 
 
-options = [
+option_definitions = [
   ('DIM',  '', 'default-mudela-fontsize', 'default fontsize for music.  DIM is assumed to in points'),
   ('EXT', 'f', 'format', 'set format.  EXT is one of texi and latex.'),
   ('', 'h', 'help', 'print help'),
@@ -773,6 +773,7 @@ def options_help_str (opts):
        w = 0
        strs =[]
        helps = []
+
        for o in opts:
                s = option_help_str (o)
                strs.append ((s, o[3]))
@@ -789,7 +790,7 @@ def help():
 Generate hybrid LaTeX input from Latex + mudela
 Options:
 """)
-       sys.stdout.write (options_help_str (options))
+       sys.stdout.write (options_help_str (option_definitions))
        sys.stdout.write (r"""Warning all output is written in the CURRENT directory
 
 
@@ -828,7 +829,7 @@ NO WARRANTY.
 
 outname = ''
 try:
-       (sh, long) = getopt_args (__main__.options)
+       (sh, long) = getopt_args (__main__.option_definitions)
        (options, files) = getopt.getopt(sys.argv[1:], sh, long)
 except getopt.error, msg:
        sys.stderr.write("error: %s" % msg)
index 2fe63fc7e22d46a48cdf497cc840e56c6e7936ea..4cfbed812719f8a525eb544eef6589abf61ab163 100644 (file)
@@ -1,6 +1,7 @@
 #!@PYTHON@
 
 # musedata = musedata.stanford.edu
+# musedata = COBOL for musicians.
 
 import re
 import sys
index d2b2f9914d363d794a5efa02989d3057b9ebaaca..f886881856595e3bd16a2af2b867b85caed159a7 100644 (file)
@@ -69,8 +69,8 @@ help: generic-help local-help
   lib         update all libraries\n\
   release     roll tarball and generate patch\n\
   rpm         build RedHat package\n\
-  po          make new po database\n\
-  po-update   update po database\n\
+  po          make new translation Portable Object database\n\
+  po-update   update translation Portable Object database\n\
   tar         same as dist\n\
   TAGS        genarate tagfiles\n\
   zip         build binary doze distribution\n\
index bf7d6a0a9d29089f98c7616481c2362677d2d792..a3aeb73bf6b1c7ff5fec98199ce86d459167413d 100644 (file)
@@ -1,6 +1,6 @@
 
 $(outdir)/%.dvi: %.mf
-       $(METAFONT) $<
+       $(METAFONT) "\nonstopmode; input $<;"
        gftodvi  $(basename $<)
        mv   $(basename $<).dvi $(outdir)
        rm $(basename $<).*gf
@@ -11,7 +11,7 @@ $(outdir)/%.log: %.mf
        rm $(basename $< ).*gf
 
 $(outdir)/%.tfm: %.mf
-       $(METAFONT) "\mode:=$(MFMODE); input $<;"
+       $(METAFONT) "\mode:=$(MFMODE); nonstopmode; input $<;"
        mv $(@F) $(outdir)
        rm $(basename $<).*gf $(basename $<).*log
 
index 5b02ba912f9ce46da21a2b5c0c74d9fc0c8b6eaa..906b18c31a3b51648aee4388f65794b12bacfb49 100644 (file)
@@ -64,7 +64,7 @@
   \end{minipage}\par
   \parskip\saveparskip
   {\center{\large\theinstrument}\par}
-  {\flushleft{\large\normalfont\scshape\thepiece}}
+  {\flushleft{\large\normalfont\scshape\thepiece}\par}
 %  \leavevmode
   \global\let\theopus\relax%
   \global\let\thepiece\relax%