From: Han-Wen Nienhuys Date: Tue, 28 Dec 1999 01:27:55 +0000 (+0100) Subject: release: 1.3.18 X-Git-Tag: release/1.3.18 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=48f2b9351f93d0161c675cfb60e95bf919041df2;hp=2ee36a10bca886544a2969b3adbc72ac28c1acf9;p=lilypond.git release: 1.3.18 =========== * Bugfix: beams with less than one (visible) stem * small fixes to pa.ly 1.3.17.j --- diff --git a/AUTHORS.txt b/AUTHORS.txt index 3c9a62d947..04c8fae710 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -52,7 +52,8 @@ list is alphabetically ordered. * Alexandre Oliva , `http://sunsite.unicamp.br/~oliva/' testing - * Francois Pinard , parts of + * Francois Pinard , + `http://www.iro.umontreal.ca/~pinard/' parts of Documentation/Vocab*, started internationalization stuff * Stephen Peters , pdfTeX support diff --git a/CHANGES b/CHANGES index fe17e324c7..44adce0ac9 100644 --- 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 directly +Don't include , from headers. + + 1.3.16.hwn1 =========== diff --git a/Documentation/programmer/regression-test.tely b/Documentation/programmer/regression-test.tely index dab2cc587d..b84760bfec 100644 --- a/Documentation/programmer/regression-test.tely +++ b/Documentation/programmer/regression-test.tely @@ -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, diff --git a/Documentation/topdocs/AUTHORS.texi b/Documentation/topdocs/AUTHORS.texi index a9969ccd58..950c41a7fa 100644 --- a/Documentation/topdocs/AUTHORS.texi +++ b/Documentation/topdocs/AUTHORS.texi @@ -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 diff --git a/Documentation/user/properties.itely b/Documentation/user/properties.itely index 76f89acb85..bafaf66fbb 100644 --- a/Documentation/user/properties.itely +++ b/Documentation/user/properties.itely @@ -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 3b12dcbfa3..fba7831c56 100644 --- 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 931f17ee76..50e55c9270 100644 --- 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. diff --git a/flower/include/real.hh b/flower/include/real.hh index 630d3dd692..d2667110a9 100644 --- a/flower/include/real.hh +++ b/flower/include/real.hh @@ -11,11 +11,10 @@ #define REAL_HH -#include #include typedef double Real; -const Real infinity_f = HUGE_VAL; +extern const Real infinity_f; template inline T abs (T x) { diff --git a/flower/include/string.hh b/flower/include/string.hh index b0bf9f8952..16f6a81f04 100644 --- a/flower/include/string.hh +++ b/flower/include/string.hh @@ -11,12 +11,10 @@ #define STRING_HH -#include -#include #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 diff --git a/flower/include/text-db.hh b/flower/include/text-db.hh index 83a8460fa6..eb0ca98fc4 100644 --- a/flower/include/text-db.hh +++ b/flower/include/text-db.hh @@ -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::operator[](j); } diff --git a/flower/include/text-stream.hh b/flower/include/text-stream.hh index d68c75a2b8..53c103c7ee 100644 --- a/flower/include/text-stream.hh +++ b/flower/include/text-stream.hh @@ -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); diff --git a/flower/include/virtual-methods.hh b/flower/include/virtual-methods.hh index b00e741330..03605d4135 100644 --- a/flower/include/virtual-methods.hh +++ b/flower/include/virtual-methods.hh @@ -10,13 +10,12 @@ #ifndef VIRTUAL_METHODS_HH #define VIRTUAL_METHODS_HH -#include #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 &); /** diff --git a/flower/polynomial.cc b/flower/polynomial.cc index d3c3538915..5a231ca6b2 100644 --- a/flower/polynomial.cc +++ b/flower/polynomial.cc @@ -4,6 +4,7 @@ (c) 1993--1999 Han-Wen Nienhuys */ +#include #include "polynomial.hh" diff --git a/flower/rational.cc b/flower/rational.cc index 15c576c686..29663fe204 100644 --- a/flower/rational.cc +++ b/flower/rational.cc @@ -5,6 +5,7 @@ (c) 1997--1999 Han-Wen Nienhuys */ +#include #include #include "rational.hh" #include "string.hh" diff --git a/flower/real.cc b/flower/real.cc new file mode 100644 index 0000000000..a043b98f4f --- /dev/null +++ b/flower/real.cc @@ -0,0 +1,4 @@ +#include +#include "real.hh" + +const Real infinity_f = HUGE_VAL; diff --git a/flower/rtti.cc b/flower/rtti.cc index c24cc27ec9..ae1aa8658c 100644 --- a/flower/rtti.cc +++ b/flower/rtti.cc @@ -1,10 +1,12 @@ +#include #include #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; diff --git a/flower/string.cc b/flower/string.cc index 48d7feaec2..a5d0e2169d 100644 --- a/flower/string.cc +++ b/flower/string.cc @@ -12,7 +12,7 @@ #include #include - +#include #include #include #include @@ -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; +} + + + diff --git a/flower/text-db.cc b/flower/text-db.cc index e59748f665..61fb0529d6 100644 --- a/flower/text-db.cc +++ b/flower/text-db.cc @@ -1,4 +1,6 @@ +#include #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"; +} diff --git a/flower/text-stream.cc b/flower/text-stream.cc index 737b411960..cb88bcd498 100644 --- a/flower/text-stream.cc +++ b/flower/text-stream.cc @@ -1,3 +1,4 @@ +#include #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); + } diff --git a/input/GNUmakefile b/input/GNUmakefile index 2814b8dfaa..2ea52dadf8 100644 --- a/input/GNUmakefile +++ b/input/GNUmakefile @@ -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 diff --git a/input/test/font-body.ly b/input/test/font-body.ly index 9f8c70c30a..c640110777 100644 --- a/input/test/font-body.ly +++ b/input/test/font-body.ly @@ -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 index c4849588c6..0000000000 --- a/input/test/force-hshift.fly +++ /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 - - } - - \context Voice = VB { - %\stemdown \shifton - \property Voice.verticalDirection=-1 - \property Voice.horizontalNoteShift=1 - \property Voice.forceHorizontalShift = #-0.1 - - } -> diff --git a/input/test/force-hshift.sly b/input/test/force-hshift.sly new file mode 100644 index 0000000000..ebe65f9617 --- /dev/null +++ b/input/test/force-hshift.sly @@ -0,0 +1,16 @@ + +\context Staff < + \context Voice = VA { + \property Voice.forceHorizontalShift = #0.1 + \stemup + \property Voice.horizontalNoteShift=1 + + } + + \context Voice = VB { + \stemdown + \property Voice.horizontalNoteShift=1 + \property Voice.forceHorizontalShift = #-0.1 + + } +> diff --git a/input/test/noteheadstyle.ly b/input/test/noteheadstyle.ly index 2ea3c43025..8c05809215 100644 --- a/input/test/noteheadstyle.ly +++ b/input/test/noteheadstyle.ly @@ -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 index a6e4e16d8e..0000000000 --- a/input/test/rest.fly +++ /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 index 0000000000..1396e8fb24 --- /dev/null +++ b/input/test/rest.ly @@ -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. +}} diff --git a/input/test/stem-centered.ly b/input/test/stem-centered.ly index a78d48d6aa..9bd08cd036 100644 --- a/input/test/stem-centered.ly +++ b/input/test/stem-centered.ly @@ -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 +} } } diff --git a/input/trip.ly b/input/trip.ly index dbc7cd9ac4..9b4e534c6e 100644 --- a/input/trip.ly +++ b/input/trip.ly @@ -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 } diff --git a/lib/input.cc b/lib/input.cc index d159319a45..f2dc0a51b3 100644 --- a/lib/input.cc +++ b/lib/input.cc @@ -5,6 +5,7 @@ (c) 1997--1999 Han-Wen Nienhuys */ +#include #include "proto.hh" #include "input.hh" #include "string.hh" diff --git a/lily/all-font-metrics.cc b/lily/all-font-metrics.cc index 89608e4768..4b6e906139 100644 --- a/lily/all-font-metrics.cc +++ b/lily/all-font-metrics.cc @@ -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_); diff --git a/lily/atom.cc b/lily/atom.cc index e71f371a3f..80abf80772 100644 --- a/lily/atom.cc +++ b/lily/atom.cc @@ -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, diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index a364995d4c..45636011c0 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -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_) diff --git a/lily/bar-number-engraver.cc b/lily/bar-number-engraver.cc index d2119562fe..8e39362e90 100644 --- a/lily/bar-number-engraver.cc +++ b/lily/bar-number-engraver.cc @@ -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())); + } } diff --git a/lily/bar-script-engraver.cc b/lily/bar-script-engraver.cc index c51d661175..bd85c3e6f2 100644 --- a/lily/bar-script-engraver.cc +++ b/lily/bar-script-engraver.cc @@ -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 (e); + /* + should do type lookup: if (e ->is_type (hang_on_type)) + */ + i = dynamic_cast (e); - // urg. - if (c) // && c->default_b_) - { - i = c; - } - } - else - { - i = dynamic_cast (e); - } return i; } diff --git a/lily/bar.cc b/lily/bar.cc index 04214d4068..1fea0a1b3e 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -18,17 +18,8 @@ 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); } diff --git a/lily/base-span-bar-engraver.cc b/lily/base-span-bar-engraver.cc index 13e43b22af..e267368cd0 100644 --- a/lily/base-span-bar-engraver.cc +++ b/lily/base-span-bar-engraver.cc @@ -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")); } } } diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index 9ca8607885..cb5132932c 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -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; } diff --git a/lily/beam.cc b/lily/beam.cc index 51752dc3f7..1daf73682b 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -14,6 +14,8 @@ * move paper vars to scm */ +#include // tanh. + #include "directional-element-interface.hh" #include "beaming.hh" #include "dimensions.hh" diff --git a/lily/bezier-bow.cc b/lily/bezier-bow.cc index afdd951b8e..318a328cb0 100644 --- a/lily/bezier-bow.cc +++ b/lily/bezier-bow.cc @@ -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 &c, Offset o) } -Bezier_bow::Bezier_bow (Paper_def* paper_l, - Array points, Direction dir) +Bezier_bow::Bezier_bow (Array 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 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); diff --git a/lily/bow.cc b/lily/bow.cc index ac43af288e..2fbb65d309 100644 --- a/lily/bow.cc +++ b/lily/bow.cc @@ -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 (); } diff --git a/lily/break-align-item.cc b/lily/break-align-item.cc index 8caac78f60..60dce822e4 100644 --- a/lily/break-align-item.cc +++ b/lily/break-align-item.cc @@ -84,7 +84,7 @@ Break_align_item::do_pre_processing() symbol_list = gh_cdr (scm_reverse (symbol_list)); for (int i=0; i set_elt_property (sym_str, scm_cons (gh_double2scm (0), gh_double2scm (dists[i+1]))); diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index 5de0c8e549..152d95163e 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -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 */ -/* - CLEAN ME UP. - */ - #include #include "staff-symbol-referencer.hh" #include "bar.hh" -#include "clef-engraver.hh" #include "clef-item.hh" #include "debug.hh" #include "command-request.hh" @@ -23,16 +18,43 @@ #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(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 (info.elem_l_); if (it_l) { - if (Note_head * h = dynamic_cast(it_l)) + if (dynamic_cast(it_l) + || dynamic_cast (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 (it_l)) - { - i->c0_position_i_ =c0_position_i_; - } else if (Key_item *k = dynamic_cast(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_); -} diff --git a/lily/clef-item.cc b/lily/clef-item.cc index 4407b8767e..5bdcfa8111 100644 --- a/lily/clef-item.cc +++ b/lily/clef-item.cc @@ -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; -} - - - diff --git a/lily/crescendo.cc b/lily/crescendo.cc index 972846498a..ecd51f5d5b 100644 --- a/lily/crescendo.cc +++ b/lily/crescendo.cc @@ -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), diff --git a/lily/duration.cc b/lily/duration.cc index 03c769ec32..4d485e477f 100644 --- a/lily/duration.cc +++ b/lily/duration.cc @@ -42,7 +42,7 @@ Duration::length_mom () const for (int d = dots_i_; d; d--) { - delta /= 2.0; + delta /= Moment (2); mom += delta; } diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index 4560bc6c73..fe27ade94b 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -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); } } } diff --git a/lily/engraver-group-engraver.cc b/lily/engraver-group-engraver.cc index 610b9890ec..85038b48d2 100644 --- a/lily/engraver-group-engraver.cc +++ b/lily/engraver-group-engraver.cc @@ -72,16 +72,6 @@ Staff_info Engraver_group_engraver::get_staff_info() const { Staff_info inf = Engraver::get_staff_info(); - - for (Cons *p = trans_p_list_.head_; p; p = p->next_) - { - if (!dynamic_cast (p->car_)) - { - Engraver * eng = dynamic_cast (p->car_); - if (eng) - eng->fill_staff_info (inf); - } - } return inf; } diff --git a/lily/global-translator.cc b/lily/global-translator.cc index 9728a4c0f2..a508197c23 100644 --- a/lily/global-translator.cc +++ b/lily/global-translator.cc @@ -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) diff --git a/lily/gourlay-breaking.cc b/lily/gourlay-breaking.cc index b8879bc45a..d81f170214 100644 --- a/lily/gourlay-breaking.cc +++ b/lily/gourlay-breaking.cc @@ -5,6 +5,7 @@ (c) 1997--1999 Han-Wen Nienhuys */ +#include // 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 final_breaks; Array lines; diff --git a/lily/grace-position-engraver.cc b/lily/grace-position-engraver.cc index 03be73a2d2..1b9fe9534f 100644 --- a/lily/grace-position-engraver.cc +++ b/lily/grace-position-engraver.cc @@ -45,12 +45,12 @@ Grace_position_engraver::acknowledge_element (Score_element_info i) } else if (Note_head * n = dynamic_cast (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(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_); diff --git a/lily/includable-lexer.cc b/lily/includable-lexer.cc index 961089bf62..a001d1e403 100644 --- a/lily/includable-lexer.cc +++ b/lily/includable-lexer.cc @@ -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 << "]"< audio_item_l_arr_; + Link_array audio_item_l_arr_; }; #endif // AUDIO_STAFF_HH diff --git a/lily/include/bar-script-engraver.hh b/lily/include/bar-script-engraver.hh index 727fa6e0f1..29110c81fe 100644 --- a/lily/include/bar-script-engraver.hh +++ b/lily/include/bar-script-engraver.hh @@ -25,7 +25,7 @@ protected: Protected_scm visibility_lambda_; String type_; Axis axis_; - bool hang_on_clef_b_; + protected: /** Put the script on #it# diff --git a/lily/include/bar.hh b/lily/include/bar.hh index 3c43bc0dcd..e884883fa7 100644 --- a/lily/include/bar.hh +++ b/lily/include/bar.hh @@ -13,17 +13,12 @@ */ 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 diff --git a/lily/include/bezier-bow.hh b/lily/include/bezier-bow.hh index 3f30b0dd63..8734471e5e 100644 --- a/lily/include/bezier-bow.hh +++ b/lily/include/bezier-bow.hh @@ -34,7 +34,13 @@ class Bezier_bow Real alpha_; Offset origin_; public: - Bezier_bow (Paper_def* paper_l, Array points, Direction dir); + Real rc_factor_, + height_limit_, + ratio_; + + + Bezier_bow (Array points, Direction dir); + void calculate (); Bezier get_curve () const; }; diff --git a/lily/include/break-algorithm.hh b/lily/include/break-algorithm.hh index 50521bbca6..e06ae4aa70 100644 --- a/lily/include/break-algorithm.hh +++ b/lily/include/break-algorithm.hh @@ -9,6 +9,7 @@ #ifndef BREAK_HH #define BREAK_HH + #include "array.hh" #include "interval.hh" #include "lily-proto.hh" @@ -18,12 +19,9 @@ /** 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 index 47e64af617..0000000000 --- a/lily/include/clef-engraver.hh +++ /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 -*/ - - -#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 diff --git a/lily/include/clef-item.hh b/lily/include/clef-item.hh index 652441278d..8ef0874bac 100644 --- a/lily/include/clef-item.hh +++ b/lily/include/clef-item.hh @@ -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 diff --git a/lily/include/crescendo.hh b/lily/include/crescendo.hh index 48834a4718..d39f311094 100644 --- a/lily/include/crescendo.hh +++ b/lily/include/crescendo.hh @@ -18,11 +18,6 @@ */ class Crescendo : public Spanner { public: - int grow_dir_; - - /// if there is a dynamic at the end, make the sign smaller. - Drul_array dyn_b_drul_; - Crescendo(); protected: VIRTUAL_COPY_CONS(Score_element); diff --git a/lily/include/debug.hh b/lily/include/debug.hh index 63df6b6afc..c592844006 100644 --- a/lily/include/debug.hh +++ b/lily/include/debug.hh @@ -6,15 +6,12 @@ #define DEBUG_HH #include -#include #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 diff --git a/lily/include/local-key-item.hh b/lily/include/local-key-item.hh index 25a1a2d3dd..9fdcb039f5 100644 --- a/lily/include/local-key-item.hh +++ b/lily/include/local-key-item.hh @@ -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: diff --git a/lily/include/slur.hh b/lily/include/slur.hh index 4bc355db51..6e703459a3 100644 --- a/lily/include/slur.hh +++ b/lily/include/slur.hh @@ -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 get_rods () const; }; diff --git a/lily/include/text-item.hh b/lily/include/text-item.hh index 4e6f14764e..930af37e10 100644 --- a/lily/include/text-item.hh +++ b/lily/include/text-item.hh @@ -18,12 +18,8 @@ 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; }; diff --git a/lily/include/tuplet-spanner.hh b/lily/include/tuplet-spanner.hh index 662ded9f98..d56a331a0e 100644 --- a/lily/include/tuplet-spanner.hh +++ b/lily/include/tuplet-spanner.hh @@ -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); diff --git a/lily/include/volta-spanner.hh b/lily/include/volta-spanner.hh index 0ef810209f..9009c0ceb5 100644 --- a/lily/include/volta-spanner.hh +++ b/lily/include/volta-spanner.hh @@ -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); diff --git a/lily/item.cc b/lily/item.cc index af2c9d63df..524c408fa3 100644 --- a/lily/item.cc +++ b/lily/item.cc @@ -26,7 +26,7 @@ Item::breakable_b () const return false; Item * i =dynamic_cast (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 diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index 299c6d49ed..767b652dd2 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -5,7 +5,7 @@ (c) 1997--1999 Han-Wen Nienhuys */ - +// 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_)); diff --git a/lily/key-item.cc b/lily/key-item.cc index 0552e50e8f..43ddc6931f 100644 --- a/lily/key-item.cc +++ b/lily/key-item.cc @@ -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_; } diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index ac577bd101..2edd23ac88 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -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); +} diff --git a/lily/line-of-score.cc b/lily/line-of-score.cc index 28d2477f68..0f313f40e9 100644 --- a/lily/line-of-score.cc +++ b/lily/line-of-score.cc @@ -30,11 +30,11 @@ Line_of_score::output_lines () { Line_of_score *line_l = dynamic_cast (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 ("]"); } } diff --git a/lily/local-key-engraver.cc b/lily/local-key-engraver.cc index 9029ea1eb4..72170cc9db 100644 --- a/lily/local-key-engraver.cc +++ b/lily/local-key-engraver.cc @@ -3,6 +3,7 @@ (c) 1997--1999 Han-Wen Nienhuys */ +// 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 (info.elem_l_); if (he_gr && !selfgr && gai) diff --git a/lily/local-key-item.cc b/lily/local-key-item.cc index cdc25c0b43..f0bf3e57e6 100644 --- a/lily/local-key-item.cc +++ b/lily/local-key-item.cc @@ -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_, diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index 7227f51f83..5e6f01f36b 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -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_)); } } diff --git a/lily/main.cc b/lily/main.cc index b45226b6e9..a73534fc60 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -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_; diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc index e00947c9ab..52dbfbe921 100644 --- a/lily/mark-engraver.cc +++ b/lily/mark-engraver.cc @@ -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); } diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index 3147b6e517..cd1b67f913 100644 --- a/lily/my-lily-lexer.cc +++ b/lily/my-lily-lexer.cc @@ -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 { diff --git a/lily/my-lily-parser.cc b/lily/my-lily-parser.cc index ded1ae87a0..794e191de7 100644 --- a/lily/my-lily-parser.cc +++ b/lily/my-lily-parser.cc @@ -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")); diff --git a/lily/note-column.cc b/lily/note-column.cc index 9701d9cd0c..7216a4a9b4 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -5,6 +5,9 @@ (c) 1997--1999 Han-Wen Nienhuys */ +#include // 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 diff --git a/lily/note-name-engraver.cc b/lily/note-name-engraver.cc index 46c7ab52d6..a87cea19ff 100644 --- a/lily/note-name-engraver.cc +++ b/lily/note-name-engraver.cc @@ -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); } diff --git a/lily/paper-def.cc b/lily/paper-def.cc index eb209453de..2fedfe4b32 100644 --- a/lily/paper-def.cc +++ b/lily/paper-def.cc @@ -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 ("") : outname) << endl; + progress_indication (_f ("paper output to %s...", + outname == "-" ? String ("") : outname)); + target_str_global_array.push (outname); return new Paper_stream (outname); diff --git a/lily/paper-score.cc b/lily/paper-score.cc index b23d002e55..097ef2bc38 100644 --- a/lily/paper-score.cc +++ b/lily/paper-score.cc @@ -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 breaking = calc_breaking (); diff --git a/lily/performance.cc b/lily/performance.cc index cb56dd2b42..99aa0458de 100644 --- a/lily/performance.cc +++ b/lily/performance.cc @@ -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"); } diff --git a/lily/property-engraver.cc b/lily/property-engraver.cc index 0c86a3c703..d2eb399759 100644 --- a/lily/property-engraver.cc +++ b/lily/property-engraver.cc @@ -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); } } diff --git a/lily/repeat-engraver.cc b/lily/repeat-engraver.cc index cdea34d4b2..86b202972e 100644 --- a/lily/repeat-engraver.cc +++ b/lily/repeat-engraver.cc @@ -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. } diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc index 1f1c874806..117c5db333 100644 --- a/lily/rest-collision.cc +++ b/lily/rest-collision.cc @@ -5,6 +5,8 @@ (c) 1997--1999 Han-Wen Nienhuys */ +#include // ceil. + #include "beam.hh" #include "debug.hh" #include "rest-collision.hh" diff --git a/lily/rhythmic-column-engraver.cc b/lily/rhythmic-column-engraver.cc index 2709b60a82..0be292f701 100644 --- a/lily/rhythmic-column-engraver.cc +++ b/lily/rhythmic-column-engraver.cc @@ -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 index 40363f393e..0000000000 --- a/lily/score-column.cc +++ /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 -*/ diff --git a/lily/score-element.cc b/lily/score-element.cc index f2c462f91a..8e180bc401 100644 --- a/lily/score-element.cc +++ b/lily/score-element.cc @@ -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; } diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 5f7c1a0f5a..3b5f946549 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -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. diff --git a/lily/score.cc b/lily/score.cc index cc73e09c1c..6911cdfa58 100644 --- a/lily/score.cc +++ b/lily/score.cc @@ -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 ; } diff --git a/lily/script-column.cc b/lily/script-column.cc index 18a7fac8b0..5c892091a7 100644 --- a/lily/script-column.cc +++ b/lily/script-column.cc @@ -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; diff --git a/lily/script.cc b/lily/script.cc index 5fb7c6767d..c3dc48943d 100644 --- a/lily/script.cc +++ b/lily/script.cc @@ -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")) diff --git a/lily/side-position-interface.cc b/lily/side-position-interface.cc index cbb7899ff4..d261d33eaf 100644 --- a/lily/side-position-interface.cc +++ b/lily/side-position-interface.cc @@ -6,6 +6,7 @@ (c) 1998--1999 Han-Wen Nienhuys */ +#include // ceil. #include "side-position-interface.hh" #include "staff-symbol.hh" diff --git a/lily/slur.cc b/lily/slur.cc index e5be36ae52..30112212c8 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -75,11 +75,6 @@ Slur::do_add_processing () set_bounds (RIGHT, encompass_arr.top ()); } -void -Slur::do_pre_processing () -{ - // don't set directions -} Offset diff --git a/lily/spacing-engraver.cc b/lily/spacing-engraver.cc index 7916353747..0082a25ae4 100644 --- a/lily/spacing-engraver.cc +++ b/lily/spacing-engraver.cc @@ -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(i.req_l_)) diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc index e54f3f971b..7d9194d66e 100644 --- a/lily/spacing-spanner.cc +++ b/lily/spacing-spanner.cc @@ -126,11 +126,11 @@ Spacing_spanner::do_measure (Link_array 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"); diff --git a/lily/span-bar.cc b/lily/span-bar.cc index 2f43cd985f..951235525f 100644 --- a/lily/span-bar.cc +++ b/lily/span-bar.cc @@ -30,7 +30,9 @@ Interval Span_bar::width_callback (Dimension_cache const * c) { Span_bar* s= dynamic_cast (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); } diff --git a/lily/span-score-bar-engraver.cc b/lily/span-score-bar-engraver.cc index e4efbe0ec0..c251211693 100644 --- a/lily/span-score-bar-engraver.cc +++ b/lily/span-score-bar-engraver.cc @@ -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 (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 } diff --git a/lily/staff-margin-engraver.cc b/lily/staff-margin-engraver.cc index bc52eb857d..148ce368d5 100644 --- a/lily/staff-margin-engraver.cc +++ b/lily/staff-margin-engraver.cc @@ -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); diff --git a/lily/stem.cc b/lily/stem.cc index 7c721c203d..18889df2d9 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -8,6 +8,8 @@ TODO: This is way too hairy */ +#include // 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 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 (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 { diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index 989332320e..de0a4bb941 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -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())); diff --git a/lily/text-item.cc b/lily/text-item.cc index 1d32e746a3..d51a136385 100644 --- a/lily/text-item.cc +++ b/lily/text-item.cc @@ -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_; -} diff --git a/lily/tie.cc b/lily/tie.cc index 15597313e3..1743da7314 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -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)) { diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index 8caa3eef77..3879f69634 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -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); } } diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index b8f85eb870..e6fe96b12c 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -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) diff --git a/lily/tuplet-spanner.cc b/lily/tuplet-spanner.cc index 355a036fef..ce9afe2243 100644 --- a/lily/tuplet-spanner.cc +++ b/lily/tuplet-spanner.cc @@ -24,10 +24,6 @@ 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); } } diff --git a/lily/volta-spanner.cc b/lily/volta-spanner.cc index 5acbc039a0..15e2fc8697 100644 --- a/lily/volta-spanner.cc +++ b/lily/volta-spanner.cc @@ -22,12 +22,14 @@ 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 (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_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) diff --git a/lily/warn.cc b/lily/warn.cc index 3623178380..74265b9e31 100644 --- a/lily/warn.cc +++ b/lily/warn.cc @@ -17,6 +17,10 @@ #include "input.hh" ostream &warnout (cerr); -ostream *mlog (&cerr); +void +progress_indication (String s) +{ + cerr << s << flush; +} diff --git a/ly/declarations.ly b/ly/declarations.ly index e7b6eac287..d6c0930ea8 100644 --- a/ly/declarations.ly +++ b/ly/declarations.ly @@ -2,6 +2,7 @@ breve = \duration { -1 0 } longa = \duration { -2 0 } +maxima = \duration { -3 0 } #(eval-string (ly-gulp-file "generic-property.scm")) diff --git a/ly/engraver.ly b/ly/engraver.ly index e33e182bbc..7a2f8dfa59 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -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"; diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 5af3b0ba8f..8bd72aeb38 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -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 diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 7a3311f3c1..d3436ae85e 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -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! diff --git a/mf/feta-bolletjes.mf b/mf/feta-bolletjes.mf index 0fdc2bdc6a..fdeebb8403 100644 --- a/mf/feta-bolletjes.mf +++ b/mf/feta-bolletjes.mf @@ -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); diff --git a/mf/feta-generic.mf b/mf/feta-generic.mf index ad64170dff..a50866f73a 100644 --- a/mf/feta-generic.mf +++ b/mf/feta-generic.mf @@ -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; diff --git a/mf/feta-klef.mf b/mf/feta-klef.mf index 32265045c8..9ec3c74e8b 100644 --- a/mf/feta-klef.mf +++ b/mf/feta-klef.mf @@ -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; diff --git a/midi2ly/include/midi2ly-global.hh b/midi2ly/include/midi2ly-global.hh index f6c90513b5..38bf84720a 100644 --- a/midi2ly/include/midi2ly-global.hh +++ b/midi2ly/include/midi2ly-global.hh @@ -6,6 +6,8 @@ #ifndef MIDI2LY_GLOBAL_HH #define MIDI2LY_GLOBAL_HH +#include + #include "string.hh" #include "proto.hh" diff --git a/midi2ly/main.cc b/midi2ly/main.cc index b92a9bbbcf..260379e376 100644 --- a/midi2ly/main.cc +++ b/midi2ly/main.cc @@ -3,6 +3,7 @@ // // copyright 1997 Jan Nieuwenhuizen +#include #include #include #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")}, diff --git a/midi2ly/mudela-voice.cc b/midi2ly/mudela-voice.cc index 4d5ec74abe..f41b793d4d 100644 --- a/midi2ly/mudela-voice.cc +++ b/midi2ly/mudela-voice.cc @@ -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) diff --git a/po/de.po b/po/de.po index 4f037b2c21..97af8f5203 100644 --- 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 index 0000000000..18ca69f561 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,1250 @@ +# it.po -- GNU LilyPond's french language file +# Laurent Martelli , 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 \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 "" +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" diff --git a/po/it.po b/po/it.po index 6b8a5ba49a..4b630f530c 100644 --- 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'" diff --git a/po/lilypond.pot b/po/lilypond.pot index 260670f531..84c0384ca2 100644 --- a/po/lilypond.pot +++ b/po/lilypond.pot @@ -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 \n" "Language-Team: LANGUAGE \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 "" 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 "" diff --git a/po/nl.po b/po/nl.po index ad93e68e2f..dffd167186 100644 --- 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" diff --git a/scm/generic-property.scm b/scm/generic-property.scm index 9e47ccbf30..5c33765f14 100644 --- a/scm/generic-property.scm +++ b/scm/generic-property.scm @@ -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) ) ) ) diff --git a/scm/lily.scm b/scm/lily.scm index f35e747fef..3ab025c5fd 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -208,7 +208,7 @@ (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))) @@ -737,3 +737,36 @@ (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)) + ) + ) + + diff --git a/scripts/convert-mudela.py b/scripts/convert-mudela.py index 7328a1b9b7..5d91080465 100644 --- a/scripts/convert-mudela.py +++ b/scripts/convert-mudela.py @@ -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") + ############################ diff --git a/scripts/mudela-book.py b/scripts/mudela-book.py index e4114a7de8..f84a660505 100644 --- a/scripts/mudela-book.py +++ b/scripts/mudela-book.py @@ -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) diff --git a/scripts/musedata2ly.py b/scripts/musedata2ly.py index 2fe63fc7e2..4cfbed8127 100644 --- a/scripts/musedata2ly.py +++ b/scripts/musedata2ly.py @@ -1,6 +1,7 @@ #!@PYTHON@ # musedata = musedata.stanford.edu +# musedata = COBOL for musicians. import re import sys diff --git a/stepmake/stepmake/generic-targets.make b/stepmake/stepmake/generic-targets.make index d2b2f9914d..f886881856 100644 --- a/stepmake/stepmake/generic-targets.make +++ b/stepmake/stepmake/generic-targets.make @@ -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\ diff --git a/stepmake/stepmake/metafont-rules.make b/stepmake/stepmake/metafont-rules.make index bf7d6a0a9d..a3aeb73bf6 100644 --- a/stepmake/stepmake/metafont-rules.make +++ b/stepmake/stepmake/metafont-rules.make @@ -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 diff --git a/tex/titledefs.tex b/tex/titledefs.tex index 5b02ba912f..906b18c31a 100644 --- a/tex/titledefs.tex +++ b/tex/titledefs.tex @@ -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%