From: Han-Wen Nienhuys Date: Fri, 24 Mar 2000 14:51:45 +0000 (+0100) Subject: release: 1.3.39 X-Git-Tag: release/1.3.39 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=c7205110d9cf8c4acb6149047f1674e2aa1a348b;p=lilypond.git release: 1.3.39 =========== * General cleanups of My_lily_parser. * Start of a Chord_tremolo_iterator for the `\repeat 4 "tremolo"' syntax. * Moved Score_element::do_space_processing out of the dependency mechanism. * Use Scheme for notename tables. Removed uppercase letters for low octave notes. Removed Notename_table. * Fixed core dump with declared "\key ; " * Extra robustness warning for Side_position_interface::aligned_on_self () * Extra robustness: make sure that first and last columns are breakable. 1.3.38.j --- diff --git a/CHANGES b/CHANGES index 3d12e27844..ef5ace9782 100644 --- a/CHANGES +++ b/CHANGES @@ -1,37 +1,47 @@ -1.3.38.jcn4 +1.3.38.hwn2 =========== - * stepmake/aclocal.m4: Added support for cross-compiling with guile. - -1.3.38.jcn3 -=========== - - * CHANGES: when I'm in add-changelog-entry mode, which we seem to - do now(?), I can't seem to get rid of the left margin (well, - either that, or I can't fill-paragraph). - - * buildscripts/make-cygwin-cross.sh: A try at dropping cygwin1.dll - dependency by using mingw. Compiling guile is too much to ask - for mingw, though. Also: - - rename python scripts .py (request from Alain) - - install native packages under their own, separate root. (Alain) - - * lily.scm: Don't use regex module when running on - Windows. (Shamus) - - * lily/staff-margin-engraver.cc (acknowledge_element): If - possible, hang y-axis of margin script to span-bar. This fixes - vertical placement of margin scripts attached to staff groups. - - * help2man-rules.make: Fixes for generating manpages by copying - and for building using --scrdir. - - * stepmake/stepmake/generic-targets.make: Preserve date stamp of - config.h, version.hh files file when copying. - -1.3.38.jcn2 +* General cleanups of My_lily_parser. + +* Start of a Chord_tremolo_iterator for the `\repeat 4 "tremolo"' +syntax. + +* Moved Score_element::do_space_processing out of the dependency +mechanism. + +* Use Scheme for notename tables. Removed uppercase letters for low +octave notes. Removed Notename_table. + +* Fixed core dump with declared "\key ; " + +* Extra robustness warning for Side_position_interface::aligned_on_self () + +* Extra robustness: make sure that first and last columns are breakable. + +1.3.38.jcn4 =========== +* stepmake/aclocal.m4: Added support for cross-compiling with guile. + +* buildscripts/make-cygwin-cross.sh: A try at dropping cygwin1.dll + dependency by using mingw. Compiling guile is too much to ask + for mingw, though. Also: + - rename python scripts .py (request from Alain) + - install native packages under their own, separate root. (Alain) + +* lily.scm: Don't use regex module when running on +Windows. (Shamus) + +* lily/staff-margin-engraver.cc (acknowledge_element): If +possible, hang y-axis of margin script to span-bar. This fixes +vertical placement of margin scripts attached to staff groups. + +* help2man-rules.make: Fixes for generating manpages by copying +and for building using --scrdir. + +* stepmake/stepmake/generic-targets.make: Preserve date stamp of +config.h, version.hh files file when copying. + * buildscripts/make-cygwin-cross.sh: made number of fixes: - add `Cygnus/' prefix to directories in .zip-file too. - package guile too. @@ -40,9 +50,6 @@ * stepmake/stepmake/install-targets.make: bugfix, don't fail if directory is not emty when uninstalling. -1.3.38.jcn1 -=========== - * stepmake/stepmake/generic-targets.make: added man target. * buildscripts/make-cygwin-cross.sh: new script for cross-building cygwin @@ -63,7 +70,8 @@ 1.3.37.hwn1 =========== -* (generic-property.scm) added tieDash +* (generic-property.scm) added \property tieDash to set dashing on +ties. * Removed ly_eval_str(), we should use scm_eval (Scm_object). @@ -269,6 +277,8 @@ don't run into the text anymore. This breaks the fine looks of all dynamics, again :-) + + 1.3.33 ====== diff --git a/Documentation/hacking.texi b/Documentation/hacking.texi index da36f2f0ef..5a73183f20 100644 --- a/Documentation/hacking.texi +++ b/Documentation/hacking.texi @@ -193,7 +193,7 @@ In a lot of other formats this would be called an 'Event' Each dynamic is bound to one note (a crescendo spanning multiple notes is thought to be made of two "dynamics": a start and a stop). Dynamic changes can occur in a smaller time than the length of its - note, therefore fore each @code{Dynamic} request carries a time, measured + note, therefore each @code{Dynamic} request carries a time, measured from the start of its note. @end table @@ -327,7 +327,7 @@ union of its children. Besides relative positions there are lots of other relations between elements. Lilypond does not contain other specialized relation -management (Like the relative positioning code). In stead, objects can +management (Like the relative positioning code). Instead, objects can be connected through dependencies, which sets the order in which objects are to be processed. @@ -366,7 +366,7 @@ An item has one horizontal position. A spanner hangs on two items. An item is a score element that is associated with only one -Paper_column. Examples are note heads, clefs, sup and superscripts, etc. +Paper_column. Examples are note heads, clefs, super and superscripts, etc. Item is a derived class of Score_element. The shape of an item is known before the break calculations, and line diff --git a/Documentation/ntweb/guile.patch b/Documentation/ntweb/guile.patch deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/VERSION b/VERSION index 37edabef35..0a4d16c579 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 -PATCH_LEVEL=38 -MY_PATCH_LEVEL=jcn4 +PATCH_LEVEL=39 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/configure b/configure index d1f5a831c0..5721504ad7 100755 --- a/configure +++ b/configure @@ -2660,31 +2660,49 @@ echo "configure:2645: checking for TeX TFM directory" >&5 + ## First, let's just see if we can find Guile at all. + echo $ac_n "checking "for guile-config"""... $ac_c" 1>&6 +echo "configure:2666: checking "for guile-config"" >&5 + for guile_config in guile-config $build-guile-config; do + echo "$ac_t"""$guile_config"" 1>&6 + if ! $guile_config --version > /dev/null 2>&1 ; then + echo "configure: warning: "cannot execute $guile_config"" 1>&2 + echo $ac_n "checking "if we are cross compiling"""... $ac_c" 1>&6 +echo "configure:2672: checking "if we are cross compiling"" >&5 + guile_config=error + else + break + fi + done + if test "$guile_config" = "error"; then + { echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; } + exit 1 + fi + if $guile_config --version 2>&1 | grep -q 'version 1\.012'; then + + echo "configure: warning: Guile version 1.3 or better needed" 1>&2 + warn_b=yes + + fi ## The GUILE_FLAGS macro. - ## First, let's just see if we can find Guile at all. echo $ac_n "checking for Guile""... $ac_c" 1>&6 -echo "configure:2668: checking for Guile" >&5 - guile-config link > /dev/null || { - echo "configure: cannot find guile-config; is Guile installed?" 1>&2 - exit 1 - } +echo "configure:2691: checking for Guile" >&5 + if ! $guile_config link > /dev/null ; then + echo "$ac_t"""cannot execute $guile_config"" 1>&6 + { echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; } + exit 1 + fi GUILE_CFLAGS="`guile-config compile`" GUILE_LDFLAGS="`guile-config link`" echo "$ac_t""yes" 1>&6 - if guile-config --version 2>&1 | grep -q 'version 1\.012'; then - - echo "configure: warning: Guile version 1.3 or better needed" 1>&2 - warn_b=yes - - fi # Extract the first word of "guile", so it can be a program name with args. set dummy guile; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2688: checking for $ac_word" >&5 +echo "configure:2706: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2722,7 +2740,7 @@ fi echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:2726: checking for 8-bit clean memcmp" >&5 +echo "configure:2744: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2730,7 +2748,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -2761,12 +2779,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:2765: checking for vprintf" >&5 +echo "configure:2783: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -2816,12 +2834,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:2820: checking for _doprnt" >&5 +echo "configure:2838: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -2874,12 +2892,12 @@ fi for ac_func in memmem snprintf vsnprintf gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2878: checking for $ac_func" >&5 +echo "configure:2896: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2944,7 +2962,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2948: checking for $ac_word" >&5 +echo "configure:2966: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2977,7 +2995,7 @@ test -n "$MAKEINFO" || MAKEINFO="error" # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2981: checking for $ac_word" >&5 +echo "configure:2999: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else diff --git a/input/test/incipit.ly b/input/test/incipit.ly index 3d06b9be56..a64d76932c 100644 --- a/input/test/incipit.ly +++ b/input/test/incipit.ly @@ -16,15 +16,17 @@ violin = \notes\relative c''{ \specialkey \keysignature f' fis'' g' gis''; \time 2/2; + \key; a4. b8 c4 fis | gis~ gis8 fis16^\trill ()e b8 c \context Staff<{\voiceone a d}{\voicetwo es,4}>| } BC = \notes\relative c{ - \key D; + \key d; \time 2/2; \clef "bass"; + \key; b2. cis4 | d e fis g | } diff --git a/input/trip.ly b/input/trip.ly index 9b4e534c6e..89d41edeeb 100644 --- a/input/trip.ly +++ b/input/trip.ly @@ -167,7 +167,7 @@ fugaIIPedal = \notes \relative c { \context Staff = pedal \relative c < { \time 4/4; - \key E; + \key e; \clef bass; %13 diff --git a/lily/axis-group-engraver.cc b/lily/axis-group-engraver.cc index cf9208793a..69ea5fee61 100644 --- a/lily/axis-group-engraver.cc +++ b/lily/axis-group-engraver.cc @@ -53,6 +53,7 @@ Axis_group_engraver::process_acknowledged () for (int i=0; i < elts_.size (); i++) { Score_element *par = elts_[i]->parent_l (Y_AXIS); + if (!par || !Axis_group_interface (par).has_interface_b ()) Axis_group_interface (staffline_p_).add_element (elts_[i]); } diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index d835edbd09..b3f07bf587 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -38,7 +38,7 @@ Bar_engraver::create_bar () SCM default_type = get_property ("defaultBarType"); if (gh_string_p (default_type)) { - bar_p_->set_elt_property ("glyph", default_type); // gu.h + bar_p_->set_elt_property ("glyph", default_type); // ugh } #if 0 diff --git a/lily/beam.cc b/lily/beam.cc index dfc960c3a4..39edb511db 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -770,8 +770,6 @@ Beam::forced_stem_count () const return f; } - - /* TODO: Fix this class. This is wildly inefficient. And it sux. Yet another array/list 'interface'. @@ -795,8 +793,6 @@ Beam::stem_top () const SCM s = get_elt_property ("stems"); return gh_pair_p (s) ? dynamic_cast (unsmob_element (gh_car (s))) : 0; - - //Group_interface__extract_elements ((Beam*) this, (Stem*) 0, "stems")[stem_count () - 1]; } /* burp */ diff --git a/lily/chord-tremolo-iterator.cc b/lily/chord-tremolo-iterator.cc new file mode 100644 index 0000000000..c74c8be464 --- /dev/null +++ b/lily/chord-tremolo-iterator.cc @@ -0,0 +1,76 @@ +/* + chord-tremolo-iterator.cc -- implement Chord_tremolo_iterator + + source file of the GNU LilyPond music typesetter + + (c) 2000 Han-Wen Nienhuys + + */ + + +/* + this is culled from various other iterators, but sharing code by subclassing proved to be too difficult. + */ + +#include "chord-tremolo-iterator.hh" +#include "repeated-music.hh" + +void +Chord_tremolo_iterator::construct_children () +{ + Repeated_music const* rep = dynamic_cast (music_l_); + factor_ = Moment (1, rep->repeats_i_); + child_iter_p_ = get_iterator_p (rep->repeat_body_p_); +} + +Chord_tremolo_iterator::Chord_tremolo_iterator() +{ + factor_ = 1; + child_iter_p_ = 0; +} + +void +Chord_tremolo_iterator::do_process_and_next (Moment m) +{ + if (!m) + { + Music_iterator *yeah = try_music (music_l_); + if (yeah) + set_translator (yeah->report_to_l ()); + else + music_l_->warning ( _("no one to print a tremolos")); + } + + child_iter_p_->process_and_next (factor_ * m); +} + + +Moment +Chord_tremolo_iterator::next_moment () const +{ + return child_iter_p_->next_moment () / factor_; +} + +bool +Chord_tremolo_iterator::ok () const +{ + return child_iter_p_ && child_iter_p_->ok(); +} + +Chord_tremolo_iterator::~Chord_tremolo_iterator () +{ + delete child_iter_p_; +} + +Music_iterator* +Chord_tremolo_iterator::try_music_in_children (Music const *m) const +{ + return child_iter_p_->try_music (m); +} + + +void +Chord_tremolo_iterator::do_print () const +{ + child_iter_p_->print (); +} diff --git a/lily/command-request.cc b/lily/command-request.cc index 68016b6683..af9e706632 100644 --- a/lily/command-request.cc +++ b/lily/command-request.cc @@ -100,32 +100,27 @@ Tempo_req::do_equal_b (Request const *r) const return t&& t->dur_.length_mom ()== dur_.length_mom () && metronome_i_ == t->metronome_i_; } - - - void Key_change_req::do_print () const { -#if 0 - key_->print(); -#endif } Key_change_req::Key_change_req () { key_ = 0; } + Key_change_req::Key_change_req (Key_change_req const&s) : Request (s) { - key_ = new Key_def (*s.key_); + key_ = s.key_ ? new Key_def (*s.key_) : 0; } + Key_change_req::~Key_change_req () { delete key_; } - Break_req::Break_req () { } diff --git a/lily/dimension-cache.cc b/lily/dimension-cache.cc index f314dbc24e..eb6f7c24a9 100644 --- a/lily/dimension-cache.cc +++ b/lily/dimension-cache.cc @@ -5,6 +5,8 @@ (c) 1998--2000 Han-Wen Nienhuys */ +#include +#include "warn.hh" #include "dimension-cache.hh" #include "parray.hh" @@ -82,7 +84,13 @@ Dimension_cache::get_offset () const { Offset_cache_callback c = me->off_callbacks_[0]; me->off_callbacks_.del (0); - me->basic_offset_ += (*c) (me); + Real r = (*c) (me); + if (isinf (r) || isnan (r)) + { + r = 0.0; + programming_error ("Infinity or NaN encountered"); + } + me->basic_offset_ +=r; } return basic_offset_ + extra_offset_; } diff --git a/lily/identifier.cc b/lily/identifier.cc index 8cf65fae49..964b33ceeb 100644 --- a/lily/identifier.cc +++ b/lily/identifier.cc @@ -6,6 +6,9 @@ (c) 1997--2000 Han-Wen Nienhuys */ +/* + JUNKTHIS! + */ #include #include "midi-def.hh" @@ -16,13 +19,12 @@ #include "debug.hh" #include "request.hh" #include "translator-group.hh" -#include "notename-table.hh" + Identifier::Identifier (int code) { token_code_i_ = code; accessed_b_ = 0; - init_b_ = 0; } Identifier::Identifier (Identifier const&s) @@ -30,7 +32,6 @@ Identifier::Identifier (Identifier const&s) { token_code_i_ = s.token_code_i_; accessed_b_ = s.accessed_b_; - init_b_ = s.init_b_; } Identifier::~Identifier() @@ -91,7 +92,6 @@ Class ## _identifier::do_str () const { \ } -DUMMY_STR(Notename_table); DUMMY_STR(Translator_group); DUMMY_STR(Music); DUMMY_STR(Request); @@ -112,7 +112,6 @@ STRING_PRINT(Duration); STRING_PRINT(Real); STRING_PRINT(int); STRING_PRINT(String); -STRING_PRINT(Notename_table); #define DEFAULT_STR(Class) \ String \ @@ -168,11 +167,9 @@ IMPLEMENT_ID_CLASS(Score); IMPLEMENT_ID_CLASS(Request); IMPLEMENT_ID_CLASS(Midi_def); IMPLEMENT_ID_CLASS(Paper_def); -IMPLEMENT_ID_CLASS(Notename_table); VIRTUAL_ACCESSOR(Music); VIRTUAL_ACCESSOR(Request); VIRTUAL_ACCESSOR(Translator_group); -DEFAULT_ACCESSOR(Notename_table); DEFAULT_ACCESSOR(Duration); DEFAULT_ACCESSOR(int); DEFAULT_ACCESSOR(Real); diff --git a/lily/include/chord-tremolo-iterator.hh b/lily/include/chord-tremolo-iterator.hh new file mode 100644 index 0000000000..9100bce319 --- /dev/null +++ b/lily/include/chord-tremolo-iterator.hh @@ -0,0 +1,35 @@ +/* + chord-tremolo-iterator.hh -- declare Chord_tremolo_iterator + + source file of the GNU LilyPond music typesetter + + (c) 2000 Han-Wen Nienhuys + + */ + +#ifndef CHORD_TREMOLO_ITERATOR_HH +#define CHORD_TREMOLO_ITERATOR_HH + +#include "music-iterator.hh" + +class Chord_tremolo_iterator : public Music_iterator +{ + Moment factor_; + Music_iterator * child_iter_p_; + +public: + Chord_tremolo_iterator (); + +protected: + virtual ~Chord_tremolo_iterator (); + virtual Moment next_moment () const; + virtual void construct_children () ; + virtual bool ok () const; + virtual void do_print () const; + virtual void do_process_and_next (Moment) ; + virtual Music_iterator *try_music_in_children (Music const *) const; +}; + + +#endif /* CHORD_TREMOLO_ITERATOR_HH */ + diff --git a/lily/include/duration.hh b/lily/include/duration.hh index c00fc2fcaa..da85a46239 100644 --- a/lily/include/duration.hh +++ b/lily/include/duration.hh @@ -29,6 +29,10 @@ struct Duration { /// Logarithm of the base duration. int durlog_i_; int dots_i_; + + /* + JUNKME. + */ int tuplet_iso_i_; // 2/3; 2 is not duration, maar of count! int tuplet_type_i_; diff --git a/lily/include/identifier.hh b/lily/include/identifier.hh index 51cc20d2c5..002b935202 100644 --- a/lily/include/identifier.hh +++ b/lily/include/identifier.hh @@ -15,7 +15,6 @@ #define DECLARE_TYPE_NAME(Class) -class Notename_table_identifier; class Translator_group_identifier; class Music_identifier; class Articulation_req_identifier; @@ -53,7 +52,6 @@ struct Identifier : public Input { void error (String) const; String str () const; IDACCESSOR(Translator_group) - IDACCESSOR(Notename_table) IDACCESSOR(Music) IDACCESSOR(Midi_def) IDACCESSOR(Paper_def) @@ -86,7 +84,6 @@ struct Class ## _identifier : Identifier {\ DECLARE_ID_CLASS(Translator_group); DECLARE_ID_CLASS(Duration); -DECLARE_ID_CLASS(Notename_table); DECLARE_ID_CLASS(Real); DECLARE_ID_CLASS(String); DECLARE_ID_CLASS(General_script_def); diff --git a/lily/include/line-of-score.hh b/lily/include/line-of-score.hh index a5a0174d19..f9031a2f50 100644 --- a/lily/include/line-of-score.hh +++ b/lily/include/line-of-score.hh @@ -14,8 +14,6 @@ class Line_of_score : public Spanner { public: - - /* imported the following from Super_element @@ -26,13 +24,8 @@ public: tracker. Every XXXX_processing () call traverses the entire dependency graph, and calls the appropriate Score_element::do_XXX_processing function on each Score_element it encounters. + */ - - FIXME: remove this class, to eliminate multiple inheritance. Merge - with Line_of_score ? */ - void space_processing (); - void pre_processing(); - void breakable_col_processing(); void post_processing(); void output_all (); diff --git a/lily/include/musical-pitch.hh b/lily/include/musical-pitch.hh index 1c691712da..7f2c386b4d 100644 --- a/lily/include/musical-pitch.hh +++ b/lily/include/musical-pitch.hh @@ -23,12 +23,16 @@ struct Musical_pitch : public Input { Musical_pitch (int notename=0, int accidental=0, int octave=0); + + /// construct from '(octave name acc) Musical_pitch (SCM); /// 0 is c, 6 is b int notename_i_; + /// 0 natural, 1 sharp, etc int accidental_i_; + /// 0 is central c int octave_i_; diff --git a/lily/include/my-lily-lexer.hh b/lily/include/my-lily-lexer.hh index 5cb3eb0124..fc00a1465c 100644 --- a/lily/include/my-lily-lexer.hh +++ b/lily/include/my-lily-lexer.hh @@ -19,6 +19,7 @@ #include "includable-lexer.hh" #include "duration.hh" #include "musical-pitch.hh" +#include "protected-scm.hh" bool busy_parsing(); void kill_lexer(); @@ -33,8 +34,12 @@ public: Scope * toplevel_scope_p_; bool main_input_b_; - Notename_table *chordmodifier_tab_p_; - Notename_table *note_tab_p_; + /* + Scheme hash tables with (oct name acc) values, and symbol keys + */ + Protected_scm chordmodifier_tab_; + Protected_scm pitchname_tab_; + Link_array scope_l_arr_; Keyword_table * keytable_p_; int errorlevel_i_; @@ -49,15 +54,12 @@ public: void set_chordmodifier_table (Notename_table*tab_p); void set_notename_table (Notename_table*tab_p); Identifier*lookup_identifier (String s); - Musical_pitch lookup_notename (String s); - Musical_pitch lookup_chordmodifier (String s); void push_note_state(); void push_chord_state(); void push_lyric_state(); void pop_state(); void LexerError (char const *); void set_identifier (String str, Identifier* i, bool unique_b = true); - void print_declarations (bool init_b) const; bool note_state_b() const; bool chord_state_b() const; bool lyric_state_b() const; diff --git a/lily/include/my-lily-parser.hh b/lily/include/my-lily-parser.hh index 907aa962b4..7c93a9a15b 100644 --- a/lily/include/my-lily-parser.hh +++ b/lily/include/my-lily-parser.hh @@ -23,8 +23,10 @@ /** State for the parser. Do not ever add any variables to parse musical content here. We still have to remove default_duration_. - - */ + + TODO: interface is too complicated + +*/ class My_lily_parser { public: @@ -37,14 +39,17 @@ public: public: Duration default_duration_; - Musical_pitch default_pitch_; + Scope *default_header_p_; + + + // JUNKME int chord_tremolo_type_i_; - bool first_b_; + int fatal_error_i_; Sources * source_l_; int error_level_i_; - bool init_parse_b_; + My_lily_lexer * lexer_p_; bool ignore_version_b_; @@ -54,23 +59,18 @@ public: void remember_spot(); Input pop_spot(); - Paper_def*default_paper_p(); - Midi_def*default_midi_p(); void do_yyparse(); void parser_error (String); - void set_debug(); void set_yydebug (bool); private: - char const* here_ch_C() const; + Array define_spot_array_; - String init_str_; - Simultaneous_music * get_note_element (Note_req * ,Duration *); + char const* here_ch_C() const; + Simultaneous_music * get_chord (Musical_pitch tonic, Array* add_arr_p, Array* sub_arr_p, Musical_pitch* inversion_p, Musical_pitch* bass_p, Duration d); - Simultaneous_music* get_rest_element (String, Duration *); - Simultaneous_music* get_word_element (String, Duration*); - String notename_str (Melodic_req* melodic); + void set_chord_tremolo (int type_i); void set_last_duration (Duration const *); void set_last_pitch (Musical_pitch const *); diff --git a/lily/include/notename-table.hh b/lily/include/notename-table.hh index f6eab20400..8b13789179 100644 --- a/lily/include/notename-table.hh +++ b/lily/include/notename-table.hh @@ -1,27 +1 @@ -/* - notename-table.hh -- declare Notename_table - source file of the GNU LilyPond music typesetter - - (c) 1997--2000 Han-Wen Nienhuys -*/ - - -#ifndef NOTENAME_TABLE_HH -#define NOTENAME_TABLE_HH - -#include "string.hh" -#include "lily-proto.hh" - -class Notename_table { - Dictionary *pitch_dict_; -public: - Notename_table (); - ~Notename_table (); - Notename_table (Notename_table const&); - Musical_pitch get_pitch(String s) const; - void add_note_name (String, Musical_pitch const *p); - bool elem_b (String )const; -}; - -#endif // NOTENAME_TABLE_HH diff --git a/lily/include/repeated-music.hh b/lily/include/repeated-music.hh index 89384b9af7..7d572eb766 100644 --- a/lily/include/repeated-music.hh +++ b/lily/include/repeated-music.hh @@ -50,6 +50,8 @@ class Repeated_music : public Music { public: + String type_; + bool fold_b_; /// if FOLD_B_ is false, semifold this. bool volta_fold_b_; diff --git a/lily/include/scm-hash.hh b/lily/include/scm-hash.hh index bc5fbafd91..ca63614042 100644 --- a/lily/include/scm-hash.hh +++ b/lily/include/scm-hash.hh @@ -17,7 +17,6 @@ #include "hash-table.hh" #include "smobs.hh" -#define usestl struct SCM_less { @@ -35,15 +34,8 @@ typedef map Scm_stl_map; class Scheme_hash_table : private Scm_stl_map { public: -#ifndef usestl - // bool elem_b (SCM k) const; - Hash_table::try_retrieve; - Hash_table::elem_b; -#else bool try_retrieve (SCM key, SCM *val); bool elem_b (SCM key) const; -#endif - /** WARNING: putting something in assumes responsibility for cleaning diff --git a/lily/include/scope.hh b/lily/include/scope.hh index fb3f140535..19f5313536 100644 --- a/lily/include/scope.hh +++ b/lily/include/scope.hh @@ -17,7 +17,6 @@ class Protected_scm; class Scope { Hash_table *id_dict_; public: - void print () const; bool elem_b (String ) const; bool elem_b (SCM s) const; Identifier *&elem (String); diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh index 8fde243cd8..51893560cc 100644 --- a/lily/include/score-element.hh +++ b/lily/include/score-element.hh @@ -15,6 +15,23 @@ #include "dimension-cache-callback.hh" + + + +/** + for administration of what was done already + */ +enum Score_element_status { + ORPHAN=0, // not yet added to pstaff + VIRGIN, // added to pstaff + PRECALCING, + PRECALCED, // calcs before spacing done + POSTCALCING, // busy calculating. This is used to trap cyclic deps. + POSTCALCED, // after spacing calcs done + BREWING, + BREWED, +}; + typedef void (Score_element::*Score_element_method_pointer) (void); /** @@ -126,6 +143,13 @@ public: virtual void do_break_processing (); virtual Score_element *find_broken_piece (Line_of_score*) const; + /// generate rods & springs + virtual void do_space_processing (); + virtual void do_breakable_col_processing (); + + /// do calculations before determining horizontal spacing + virtual void before_line_breaking (); + protected: /** @@ -142,13 +166,7 @@ protected: virtual Molecule do_brew_molecule () const; ///executed directly after the item is added to the Paper_score virtual void do_add_processing (); - /// do calculations before determining horizontal spacing - virtual void before_line_breaking (); - /// generate rods & springs - virtual void do_space_processing (); - - virtual void do_breakable_col_processing (); /// do calculations after determining horizontal spacing virtual void after_line_breaking (); diff --git a/lily/item.cc b/lily/item.cc index 45cea7a7c4..0458144c35 100644 --- a/lily/item.cc +++ b/lily/item.cc @@ -44,9 +44,7 @@ Line_of_score * Item::line_l() const { Score_element *g = parent_l (X_AXIS); - if (!g) - return 0; - return dynamic_cast (g)-> line_l (); + return g ? g->line_l () : 0; } diff --git a/lily/lexer.ll b/lily/lexer.ll index 4cf958de48..b567746c36 100644 --- a/lily/lexer.ll +++ b/lily/lexer.ll @@ -340,7 +340,7 @@ HYPHEN -- return STRING; } . { - return yylval.c = YYText ()[0]; + return YYText ()[0]; } } { @@ -370,7 +370,7 @@ HYPHEN -- return CHORD_CARET; } . { - return yylval.c = YYText ()[0]; + return YYText ()[0]; } } @@ -415,12 +415,12 @@ HYPHEN -- } . { - return yylval.c = YYText ()[0]; + return YYText ()[0]; } \\. { char c= YYText ()[1]; - yylval.c = c; + switch (c) { case '>': return E_BIGGER; @@ -468,6 +468,10 @@ My_lily_lexer::pop_state () int My_lily_lexer::scan_escaped_word (String str) { + // use more SCM for this. + + SCM sym = ly_symbol2scm (str.ch_C()); + int l = lookup_keyword (str); if (l != -1) { return l; @@ -478,16 +482,16 @@ My_lily_lexer::scan_escaped_word (String str) return id->token_code_i_; } if ((YYSTATE != notes) && (YYSTATE != chords)) { - if (note_tab_p_->elem_b (str)) + SCM pitch = scm_hashq_ref (pitchname_tab_, sym, SCM_BOOL_F); + + if (pitch != SCM_BOOL_F) { - yylval.pitch = new Musical_pitch (lookup_notename (str)); + yylval.pitch = new Musical_pitch (pitch); yylval.pitch->set_spot (Input (source_file_l (), here_ch_C ())); return NOTENAME_PITCH; } } - if (flower_dstream) - print_declarations (true); String msg (_f ("unknown escaped string: `\\%s'", str)); LexerError (msg.ch_C ()); @@ -499,15 +503,17 @@ My_lily_lexer::scan_escaped_word (String str) int My_lily_lexer::scan_bare_word (String str) { + SCM sym = ly_symbol2scm (str.ch_C ()); if ((YYSTATE == notes) || (YYSTATE == chords)) { - if (note_tab_p_->elem_b (str)) { - yylval.pitch = new Musical_pitch (lookup_notename (str)); + SCM pitch = scm_hashq_ref (pitchname_tab_, sym, SCM_BOOL_F); + if (pitch != SCM_BOOL_F) { + yylval.pitch = new Musical_pitch (pitch); yylval.pitch->set_spot (Input (source_file_l (), here_ch_C ())); return (YYSTATE == notes) ? NOTENAME_PITCH : TONICNAME_PITCH; - } else if (chordmodifier_tab_p_->elem_b (str)) + } else if ((pitch = scm_hashq_ref (pitchname_tab_, sym, SCM_BOOL_F))!= SCM_BOOL_F) { - yylval.pitch = new Musical_pitch (lookup_chordmodifier (str)); + yylval.pitch = new Musical_pitch (pitch); yylval.pitch->set_spot (Input (source_file_l (), here_ch_C ())); return CHORDMODIFIER_PITCH; diff --git a/lily/line-of-score.cc b/lily/line-of-score.cc index 89d6de0dd4..4d8f3b7429 100644 --- a/lily/line-of-score.cc +++ b/lily/line-of-score.cc @@ -96,57 +96,9 @@ Line_of_score::compare (Line_of_score* const &p1,Line_of_score* const &p2) return p1->rank_i_ - p2->rank_i_; } - - -/** - for administration of what was done already - */ -enum Score_element_status { - ORPHAN=0, // not yet added to pstaff - VIRGIN, // added to pstaff - PREBROKEN, - PREBROKEN_SECOND, - PRECALCING, - PRECALCED, // calcs before spacing done - SPACING, - SPACED, - BROKEN, - BROKEN_SECOND, - POSTCALCING, // busy calculating. This is used to trap cyclic deps. - POSTCALCED, // after spacing calcs done - BREWING, - BREWED, -}; - -void -Line_of_score::pre_processing () -{ - calculate_dependencies (PRECALCED, PRECALCING, &Score_element::before_line_breaking); -} - -void -Line_of_score::space_processing () -{ - calculate_dependencies (SPACED, SPACING, &Score_element::do_space_processing); -} - -/* for break processing, use only one status, because copies have to - have correct status. (Previously, - Score_element::handle_[pre]broken_dependencies assigned to status_i_ - */ -void -Line_of_score::breakable_col_processing () -{ - calculate_dependencies (PREBROKEN, PREBROKEN, &Score_element::do_breakable_col_processing); - // calculate_dependencies (PREBROKEN_SECOND, PREBROKEN_SECOND, &Score_element::handle_prebroken_dependents); -} - - void Line_of_score::post_processing () { - // calculate_dependencies (BROKEN_SECOND, BROKEN_SECOND, - // &Score_element::handle_broken_dependents); calculate_dependencies (POSTCALCED, POSTCALCING, &Score_element::after_line_breaking); } diff --git a/lily/main.cc b/lily/main.cc index cd2ee91d95..d0f568c836 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -69,7 +69,7 @@ String distill_inname_str (String name_str, String& ext_r); */ Long_option_init theopts[] = { {0, "debug", 'd', _i ("enable debugging output")}, - {_i ("EXT"), "output-format", 'f', _i ("use output format EXT")}, + {_i ("EXT"), "output-format", 'f', _i ("use output format EXT (scm, ps, tex or as)")}, {0, "help", 'h', _i ("this help")}, {_i ("DIR"), "include", 'I', _i ("add DIR to search path")}, {_i ("FILE"), "init", 'i', _i ("use FILE as init file")}, diff --git a/lily/music-iterator.cc b/lily/music-iterator.cc index edbb722e24..1ad45da523 100644 --- a/lily/music-iterator.cc +++ b/lily/music-iterator.cc @@ -37,6 +37,7 @@ #include "request.hh" #include "request-iterator.hh" #include "output-property.hh" +#include "chord-tremolo-iterator.hh" void Music_iterator::do_print() const @@ -149,7 +150,9 @@ Music_iterator::static_get_iterator_p (Music const *m) p = new Music_wrapper_iterator; else if (Repeated_music const * n = dynamic_cast (m)) { - if (n->fold_b_) + if (n->type_ == "tremolo") + p = new Chord_tremolo_iterator; + else if (n->fold_b_) p = new Folded_repeat_iterator; else p = new Unfolded_repeat_iterator; diff --git a/lily/music-output-def.cc b/lily/music-output-def.cc index fec85bba0f..4330d1733a 100644 --- a/lily/music-output-def.cc +++ b/lily/music-output-def.cc @@ -92,12 +92,6 @@ Music_output_def::get_global_translator_p () void Music_output_def::print () const { -#ifndef NPRINT - DEBUG_OUT << "Translators: \n"; - translator_p_dict_p_->print (); - DEBUG_OUT << "Other definitions.\n"; - scope_p_->print( ); -#endif } String diff --git a/lily/musical-pitch.cc b/lily/musical-pitch.cc index dfc0614e4a..0ebd91dfe4 100644 --- a/lily/musical-pitch.cc +++ b/lily/musical-pitch.cc @@ -13,18 +13,18 @@ SCM Musical_pitch::to_scm ()const { - return gh_list (gh_int2scm (notename_i_), + return gh_list (gh_int2scm (octave_i_), + gh_int2scm (notename_i_), gh_int2scm (accidental_i_), - gh_int2scm (octave_i_), SCM_UNDEFINED); } Musical_pitch::Musical_pitch (SCM s) { - notename_i_ = gh_scm2int (gh_car (s)); - accidental_i_ = gh_scm2int (gh_cadr (s)); - octave_i_ = gh_scm2int (gh_caddr (s)); + octave_i_ = gh_scm2int (gh_car (s)); + notename_i_ = gh_scm2int (gh_cadr (s)); + accidental_i_ = gh_scm2int (gh_caddr (s)); } Musical_pitch::Musical_pitch (int n, int a, int o) diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index 0e74531f07..ab0bd3f3a8 100644 --- a/lily/my-lily-lexer.cc +++ b/lily/my-lily-lexer.cc @@ -8,7 +8,7 @@ #include #include -#include "notename-table.hh" + #include "interval.hh" #include "identifier.hh" #include "lily-guile.hh" @@ -85,8 +85,6 @@ My_lily_lexer::My_lily_lexer() toplevel_scope_p_ = new Scope; scope_l_arr_.push (toplevel_scope_p_); errorlevel_i_ = 0; - note_tab_p_ = new Notename_table; - chordmodifier_tab_p_ = new Notename_table; main_input_b_ = false; } @@ -110,17 +108,8 @@ My_lily_lexer::lookup_identifier (String s) void My_lily_lexer::start_main_input () { - if (flower_dstream && !flower_dstream->silent_b ("InitDeclarations") && flower_dstream) - print_declarations (true); - if (flower_dstream && !flower_dstream->silent_b ("InitLexer") && flower_dstream) - set_debug (1); - - new_input (main_input_str_, source_global_l); allow_includes_b_ = allow_includes_b_ && !(safe_global_b); - - - print_declarations(true); } void @@ -133,10 +122,6 @@ My_lily_lexer::set_identifier (String name_str, Identifier* i, bool ) if (old) { -#if 0 - if (unique_b) - old->warning(_f ("redeclaration of `\\%s'", name_str)); -#endif delete old; } if (lookup_keyword (name_str) >= 0) @@ -149,21 +134,11 @@ My_lily_lexer::set_identifier (String name_str, Identifier* i, bool ) My_lily_lexer::~My_lily_lexer() { - delete chordmodifier_tab_p_; delete keytable_p_; delete toplevel_scope_p_ ; - delete note_tab_p_; } -void -My_lily_lexer::print_declarations (bool ) const -{ - for (int i=scope_l_arr_.size (); i--; ) - { - DEBUG_OUT << "Scope no. " << i << '\n'; - scope_l_arr_[i]->print (); - } -} + void My_lily_lexer::LexerError (char const *s) @@ -180,35 +155,6 @@ My_lily_lexer::LexerError (char const *s) } } -Musical_pitch -My_lily_lexer::lookup_notename (String s) -{ - return note_tab_p_->get_pitch (s); -} - -Musical_pitch -My_lily_lexer::lookup_chordmodifier (String s) -{ - return chordmodifier_tab_p_->get_pitch (s); -} - - -void -My_lily_lexer::set_notename_table (Notename_table *p) -{ - delete note_tab_p_; - note_tab_p_ = p; -} - - - -void -My_lily_lexer::set_chordmodifier_table (Notename_table *p) -{ - delete chordmodifier_tab_p_; - chordmodifier_tab_p_ = p; -} - char My_lily_lexer::escaped_char(char c) const { diff --git a/lily/my-lily-parser.cc b/lily/my-lily-parser.cc index b081bcf6eb..0991ef79fc 100644 --- a/lily/my-lily-parser.cc +++ b/lily/my-lily-parser.cc @@ -25,7 +25,6 @@ My_lily_parser::My_lily_parser (Sources * source_l) { - first_b_ = true; source_l_ = source_l; lexer_p_ = 0; chord_tremolo_type_i_ = 0; @@ -52,12 +51,11 @@ void My_lily_parser::parse_file (String init, String s) { lexer_p_ = new My_lily_lexer; - init_str_ = init; + lexer_p_->main_input_str_ = s; progress_indication (_("Parsing...")); - init_parse_b_ = false; set_yydebug (flower_dstream &&!flower_dstream->silent_b ("Parser")); lexer_p_->new_input (init, source_l_); do_yyparse (); @@ -112,7 +110,12 @@ My_lily_parser::set_chord_tremolo (int type_i) // junk me Simultaneous_music * -My_lily_parser::get_chord (Musical_pitch tonic, Array* add_arr_p, Array* sub_arr_p, Musical_pitch* inversion_p, Musical_pitch* bass_p, Duration d) +My_lily_parser::get_chord (Musical_pitch tonic, + Array* add_arr_p, + Array* sub_arr_p, + Musical_pitch* inversion_p, + Musical_pitch* bass_p, + Duration d) { Simultaneous_music*v = new Request_chord; v->set_spot (here_input ()); @@ -171,17 +174,5 @@ My_lily_parser::here_input() const return lexer_p_->here_input (); } -Paper_def* -My_lily_parser::default_paper_p () -{ - Identifier *id = lexer_p_->lookup_identifier ("$defaultpaper"); - return id ? id->access_content_Paper_def (true) : new Paper_def ; -} -Midi_def* -My_lily_parser::default_midi_p () -{ - Identifier *id = lexer_p_->lookup_identifier ("$defaultmidi"); - return id ? id->access_content_Midi_def (true) : new Midi_def ; -} diff --git a/lily/new-chord-tremolo-engraver.cc b/lily/new-chord-tremolo-engraver.cc new file mode 100644 index 0000000000..3be0740ffe --- /dev/null +++ b/lily/new-chord-tremolo-engraver.cc @@ -0,0 +1,37 @@ +#if 0 +/* + new-chord-tremolo-engraver.cc -- implement New_chord_tremolo_engraver + + source file of the GNU LilyPond music typesetter + + (c) 2000 Han-Wen Nienhuys + + */ + + + +class New_chord_tremolo_engraver : public Engraver +{ +public: + VIRTUAL_COPY_CONS(Translator); + New_chord_tremolo_engraver(); +protected: + + virtual bool do_try_music (Music *); + virtual void do_process_music (); +}; + +New_chord_tremolo_engraver::New_chord_tremolo_engraver() +{ +} + +bool +New_chord_tremolo_engraver::do_try_music (Music * m) +{ + if (dynamic_cast (m)) + { + + } +} + +#endif diff --git a/lily/notename-table.cc b/lily/notename-table.cc index 091f2b7685..8b13789179 100644 --- a/lily/notename-table.cc +++ b/lily/notename-table.cc @@ -1,44 +1 @@ -/* - notename-table.cc -- implement Notename_table - source file of the GNU LilyPond music typesetter - - (c) 1997--2000 Han-Wen Nienhuys -*/ - -#include "notename-table.hh" -#include "dictionary-iter.hh" -#include "dictionary.hh" -#include "musical-pitch.hh" - -void -Notename_table::add_note_name (String s, - Musical_pitch const *p) -{ - pitch_dict_->elem (s) = *p; -} - -Notename_table::Notename_table () -{ - pitch_dict_ = new Dictionary; -} - -Notename_table::~Notename_table() -{ - delete pitch_dict_; -} - -Notename_table::Notename_table (Notename_table const &s) -{ - pitch_dict_ = new Dictionary (*s.pitch_dict_); -} -bool -Notename_table::elem_b (String s)const -{ - return pitch_dict_->elem_b (s); -} -Musical_pitch -Notename_table::get_pitch (String s)const -{ - return (*pitch_dict_)[s]; -} diff --git a/lily/output-property-engraver.cc b/lily/output-property-engraver.cc index 6f0b6cf88f..78227b5f60 100644 --- a/lily/output-property-engraver.cc +++ b/lily/output-property-engraver.cc @@ -43,6 +43,7 @@ Output_property_engraver::acknowledge_element (Score_element_info inf) { Output_property * o = props_[i]; SCM pred = gh_car (o->pred_sym_val_list_); + /* should typecheck pred. */ diff --git a/lily/paper-score.cc b/lily/paper-score.cc index 41a4fcd8e0..7da9928364 100644 --- a/lily/paper-score.cc +++ b/lily/paper-score.cc @@ -112,30 +112,43 @@ Paper_score::process () { print (); progress_indication (_ ("Preprocessing elements...") + " "); - line_l_->breakable_col_processing (); + + + /* + Be sure to set breakability on first & last column. + */ + col_l_arr_[0]->set_elt_property ("breakable", SCM_BOOL_T); + col_l_arr_.top ()->set_elt_property ("breakable", SCM_BOOL_T); + + for (SCM s = element_smob_list_; gh_pair_p (s); s = gh_cdr (s)) + unsmob_element (gh_car (s))->do_breakable_col_processing (); + fixup_refpoints (); - line_l_->pre_processing (); - + + for (SCM s = element_smob_list_; gh_pair_p (s); s = gh_cdr (s)) + { + Score_element* sc = unsmob_element (gh_car (s)); + sc->calculate_dependencies (PRECALCED, PRECALCING, &Score_element::before_line_breaking); + } + progress_indication ("\n" + _ ("Calculating column positions...") + " " ); - line_l_->space_processing (); + for (SCM s = element_smob_list_; gh_pair_p (s); s = gh_cdr (s)) + unsmob_element (gh_car (s))->do_space_processing (); Array breaking = calc_breaking (); line_l_->break_into_pieces (breaking); for (SCM s = element_smob_list_; gh_pair_p (s); s = gh_cdr (s)) { - Score_element *sc = unsmob_element (gh_car (s)); - sc->do_break_processing (); + unsmob_element (gh_car (s))->do_break_processing (); } for (SCM s = element_smob_list_; gh_pair_p (s); s = gh_cdr (s)) { - Score_element *sc = unsmob_element (gh_car (s)); - sc->handle_broken_dependencies (); + unsmob_element (gh_car (s))->handle_broken_dependencies (); } outputter_l_ = new Paper_outputter ; outputter_l_->output_header (); - outputter_l_->output_version(); if (header_global_p) @@ -164,9 +177,14 @@ Paper_score::process () */ SCM before_output = outputter_l_->last_cons_; - - fixup_refpoints (); + + /* + TODO: change this, so that each element ouputs its molecules into + its line, and then output all lines one by one; then we can do + + foreach element: output + */ line_l_->output_lines (); @@ -179,9 +197,9 @@ Paper_score::process () Paper_stream* psp = paper_l_->paper_stream_p (); outputter_l_->dump_onto (psp); + // huh? delete outputter_l_; - outputter_l_ = 0; delete psp; diff --git a/lily/parser.yy b/lily/parser.yy index 3b9df13d04..dab130bfa0 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -11,7 +11,6 @@ #include #include "lily-guile.hh" -#include "notename-table.hh" #include "translation-property.hh" #include "lookup.hh" #include "misc.hh" @@ -52,15 +51,13 @@ is_duration_b (int t) return t == 1 << intlog2(t); } - - - void print_mudela_versions (ostream &os) { os << _f ("Oldest supported input version: %s", oldest_version.str ()) << endl; } + // needed for bison.simple's malloc() and free() #include @@ -84,7 +81,6 @@ print_mudela_versions (ostream &os) Array *pitch_arr; Link_array *reqvec; Array *intvec; - Notename_table *chordmodifiertab; Duration *duration; Identifier *id; String * string; @@ -98,7 +94,6 @@ print_mudela_versions (ostream &os) Musical_pitch * pitch; Midi_def* midi; Moment *moment; - Notename_table *notenametab; Paper_def *paper; Real real; Request * request; @@ -110,7 +105,6 @@ of the parse stack onto the heap. */ Tempo_req *tempo; Translator_group* trans; - char c; int i; } %{ @@ -201,7 +195,6 @@ yylex (YYSTYPE *s, void * v_l) %token CHORDMODIFIER_PITCH %token DURATION_IDENTIFIER %token IDENTIFIER -%token NOTENAME_TABLE_IDENTIFIER %token MUSIC_IDENTIFIER %token REQUEST_IDENTIFIER %token REAL_IDENTIFIER @@ -235,12 +228,11 @@ yylex (YYSTYPE *s, void * v_l) %type int_list %type pre_requests post_requests %type gen_text_def -%type explicit_musical_pitch steno_musical_pitch musical_pitch absolute_musical_pitch +%type steno_musical_pitch musical_pitch absolute_musical_pitch %type steno_tonic_pitch -%type pitch_list +%type pitch_list chord_additions chord_subtractions chord_notes chord_step %type chord -%type chord_additions chord_subtractions chord_notes chord_step %type chord_note chord_inversion chord_bass %type midi_block midi_body %type duration_length @@ -260,10 +252,10 @@ yylex (YYSTYPE *s, void * v_l) %type string %type score_block score_body -%type script_abbreviation %type translator_spec_block translator_spec_body %type tempo_request -%type notenames_body notenames_block chordmodifiers_block +%type notenames_body notenames_block chordmodifiers_block +%type script_abbreviation @@ -284,10 +276,10 @@ mudela: /* empty */ toplevel_expression: notenames_block { - THIS->lexer_p_->set_notename_table ($1); + THIS->lexer_p_->pitchname_tab_ = $1; } | chordmodifiers_block { - THIS->lexer_p_->set_chordmodifier_table ($1); + THIS->lexer_p_->chordmodifier_tab_ = $1; } | mudela_header { delete header_global_p; @@ -317,26 +309,29 @@ embedded_scm: chordmodifiers_block: - CHORDMODIFIERS '{' notenames_body '}' { $$ = $3; } + CHORDMODIFIERS notenames_body { $$ = $2; } ; notenames_block: - NOTENAMES '{' notenames_body '}' { $$ = $3; } + NOTENAMES notenames_body { $$ = $2; } ; notenames_body: - /**/ { - $$ = new Notename_table; - } - | NOTENAME_TABLE_IDENTIFIER { - $$ = $1-> access_content_Notename_table(true); - } - | notenames_body STRING '=' explicit_musical_pitch { - $$->add_note_name (ly_scm2string ($2), $4); - delete $4; + embedded_scm { + int i = scm_ilength ($1); + + SCM tab = scm_make_vector (gh_int2scm (i), SCM_EOL); + for (SCM s = $1; s != SCM_EOL; s = gh_cdr (s)) { + SCM pt = gh_cdar (s); + if (scm_ilength (pt) != 3) + THIS->parser_error ("Need three args"); + scm_hashq_set_x (tab, gh_caar(s), pt); + } + + $$ = tab; } ; @@ -367,7 +362,7 @@ assignment: } /* cont */ '=' identifier_init { THIS->lexer_p_->set_identifier (ly_scm2string ($1), $4); - $4->init_b_ = THIS->init_parse_b_; + $4->set_spot (THIS->pop_spot ()); } ; @@ -379,12 +374,6 @@ identifier_init: $$ = new Score_identifier ($1, SCORE_IDENTIFIER); } - | chordmodifiers_block { - $$ = new Notename_table_identifier ($1, NOTENAME_TABLE_IDENTIFIER); - } - | notenames_block { - $$ = new Notename_table_identifier ($1, NOTENAME_TABLE_IDENTIFIER); - } | paper_block { $$ = new Paper_def_identifier ($1, PAPER_IDENTIFIER); } @@ -488,7 +477,11 @@ score_block: /*cont*/ '{' score_body '}' { $$ = $4; if (!$$->def_p_arr_.size ()) - $$->add_output (THIS->default_paper_p ()); + { + Identifier *id = + THIS->lexer_p_->lookup_identifier ("$defaultpaper"); + $$->add_output (id ? id->access_content_Paper_def (true) : new Paper_def ); + } } ; @@ -538,7 +531,8 @@ paper_block: paper_def_body: /* empty */ { - Paper_def *p = THIS->default_paper_p (); + Identifier *id = THIS->lexer_p_->lookup_identifier ("$defaultpaper"); + Paper_def *p = id ? id->access_content_Paper_def (true) : new Paper_def; THIS-> lexer_p_-> scope_l_arr_.push (p->scope_p_); $$ = p; } @@ -635,9 +629,12 @@ midi_block: ; midi_body: /* empty */ { - Midi_def * p =THIS->default_midi_p (); - $$ = p; - THIS->lexer_p_->scope_l_arr_.push (p->scope_p_); + Identifier *id = THIS->lexer_p_->lookup_identifier ("$defaultmidi"); + Midi_def* p = id + ? id->access_content_Midi_def (true) : new Midi_def ; + + $$ = p; + THIS->lexer_p_->scope_l_arr_.push (p->scope_p_); } | MIDI_IDENTIFIER { Midi_def * p =$1-> access_content_Midi_def (true); @@ -651,6 +648,10 @@ midi_body: /* empty */ { $$-> assign_translator ($2); } | midi_body tempo_request semicolon { + /* + junk this ? there already is tempo stuff in + music. + */ $$->set_tempo ($2->dur_.length_mom (), $2->metronome_i_); delete $2; } @@ -707,8 +708,9 @@ Repeated_music: Repeated_music * r = new Repeated_music ($4, $3 >? 1, m); $$ = r; - r->fold_b_ = (ly_scm2string ($2) == "fold"); - r->volta_fold_b_ = (ly_scm2string ($2) == "volta"); + r->type_ = ly_scm2string ($2); + r->fold_b_ = (r->type_ == "fold"); + r->volta_fold_b_ = (r->type_ == "volta"); r->set_spot ($4->spot ()); } ; @@ -950,6 +952,7 @@ shorthand_command_req: $$ =b; } | '[' ':' unsigned { + // JUNKME if (!is_duration_b ($3)) THIS->parser_error (_f ("not a duration: %d", $3)); else @@ -976,6 +979,8 @@ shorthand_command_req: Chord_tremolo_req* a = new Chord_tremolo_req; a->span_dir_ = STOP; a->type_i_ = THIS->chord_tremolo_type_i_; + + // JUNKME. THIS->set_chord_tremolo (0); $$ = a; } @@ -1197,24 +1202,17 @@ steno_tonic_pitch: } ; -explicit_musical_pitch: - MUSICAL_PITCH '{' int_list '}' {/* ugh */ - Array &a = *$3; - ARRAY_SIZE(a,3); - $$ = new Musical_pitch; - $$->octave_i_ = a[0]; - $$->notename_i_ = a[1]; - $$->accidental_i_ = a[2]; - delete &a; - } - ; - musical_pitch: steno_musical_pitch { $$ = $1; } - | explicit_musical_pitch { - $$ = $1; + | MUSICAL_PITCH embedded_scm { + int sz = scm_ilength ($2); + if (sz != 3) { + THIS->parser_error (_f ("Expecting %d arguments", 3)); + $2 = gh_list (gh_int2scm (0), gh_int2scm (0), gh_int2scm (0), SCM_UNDEFINED); + } + $$ = new Musical_pitch ($2); } ; @@ -1420,7 +1418,7 @@ simple_element: n->pitch_ = *$1; n->duration_ = *$4; /* - URG + URG, JUNKTHIS! */ if (THIS->chord_tremolo_type_i_) { diff --git a/lily/repeat-engraver.cc b/lily/repeat-engraver.cc index dcf545cf3f..67fa3e661e 100644 --- a/lily/repeat-engraver.cc +++ b/lily/repeat-engraver.cc @@ -40,7 +40,8 @@ Repeat_engraver::do_try_music (Music* m) We acknowledge other types of unfolded music as well, to get auto context selection right. */ - return true; + if (r->type_ == "volta" || r->type_ == "unfolded") + return true; } return false; diff --git a/lily/scope.cc b/lily/scope.cc index e2923fcb80..917f97344a 100644 --- a/lily/scope.cc +++ b/lily/scope.cc @@ -14,29 +14,11 @@ #include "dictionary.hh" #include "protected-scm.hh" -void -Scope::print () const -{ -#ifndef NPRINT - bool init_b = false; // ugh - for (Scope_iter ai (*this); ai.ok(); ai++) - { - if (ai.val()->init_b_ == init_b) - { - DEBUG_OUT << ai.key() << "="; - ai.val()->print (); - } - } -#endif -} Scope::~Scope () { for (Scope_iter ai (*this); ai.ok(); ai++) - { - DEBUG_OUT << "deleting: " << ai.key() << '\n'; - delete ai.val (); - } + delete ai.val (); delete id_dict_; } diff --git a/lily/score-element.cc b/lily/score-element.cc index 4f1870886a..49de87c742 100644 --- a/lily/score-element.cc +++ b/lily/score-element.cc @@ -28,12 +28,20 @@ #include "side-position-interface.hh" #include "item.hh" +/* +TODO: + +remove dynamic_cast and put this code into respective + subclass. +*/ + Score_element::Score_element() { dim_cache_[X_AXIS] = new Dimension_cache; dim_cache_[Y_AXIS] = new Dimension_cache; dim_cache_[X_AXIS]->elt_l_ = dim_cache_[Y_AXIS]->elt_l_ = this; - + + // junkme. used_b_ = false; dim_cache_[X_AXIS]->set_callback (molecule_extent); @@ -261,11 +269,6 @@ Score_element::after_line_breaking () { } -void -Score_element::do_breakable_col_processing() -{ - handle_prebroken_dependencies(); -} void Score_element::before_line_breaking () @@ -686,3 +689,8 @@ init_functions () } ADD_SCM_INIT_FUNC(scoreelt, init_functions); + +void +Score_element::do_breakable_col_processing () +{ +} diff --git a/lily/side-position-interface.cc b/lily/side-position-interface.cc index c76b0a09b8..2d29cf9e33 100644 --- a/lily/side-position-interface.cc +++ b/lily/side-position-interface.cc @@ -129,7 +129,13 @@ Side_position_interface::aligned_on_self (Dimension_cache const *c) { Direction d = to_dir (align); Interval ext(elm->extent (ax)); - if (d) + + if (ext.empty_b ()) + { + programming_error ("I'm empty. Can't align on self"); + return 0.0; + } + else if (d) { return - ext[d]; } diff --git a/lily/vertical-align-engraver.cc b/lily/vertical-align-engraver.cc index b4244c668e..d16bdd161b 100644 --- a/lily/vertical-align-engraver.cc +++ b/lily/vertical-align-engraver.cc @@ -86,6 +86,12 @@ Vertical_align_engraver::acknowledge_element (Score_element_info i) { Align_interface(valign_p_).add_element (i.elem_l_); } + +#if 1 // + /* + should junk this, but (crossstaff?) Beam doesn't have a clue yet + ... */ + /* Add make sure spanbars (whose size depends on vertical alignment) depend on the vertical alignment element @@ -93,7 +99,8 @@ Vertical_align_engraver::acknowledge_element (Score_element_info i) else if (dynamic_cast(i.elem_l_) && i.origin_trans_l_arr (this).size ()) { i.elem_l_->add_dependency (valign_p_); - } + } +#endif } diff --git a/ly/catalan.ly b/ly/catalan.ly index 99ae0dc723..a2f842c2f3 100644 --- a/ly/catalan.ly +++ b/ly/catalan.ly @@ -15,59 +15,60 @@ % contributed by Jaume Obrador -\notenames { - dobb = \musicalpitch { -1 0 -2 } - dob = \musicalpitch { -1 0 -1 } - do = \musicalpitch { -1 0 0 } - dod = \musicalpitch { -1 0 1 } - dodd = \musicalpitch { -1 0 2 } - rebb = \musicalpitch { -1 1 -2 } - reb = \musicalpitch { -1 1 -1 } - re = \musicalpitch { -1 1 0 } - red = \musicalpitch { -1 1 1 } - redd = \musicalpitch { -1 1 2 } - mibb = \musicalpitch { -1 2 -2 } - mib = \musicalpitch { -1 2 -1 } - mi = \musicalpitch { -1 2 0 } - mid = \musicalpitch { -1 2 1 } - midd = \musicalpitch { -1 2 2 } - fabb = \musicalpitch { -1 3 -2 } - fab = \musicalpitch { -1 3 -1 } - fa = \musicalpitch { -1 3 0 } - fad = \musicalpitch { -1 3 1 } - fadd = \musicalpitch { -1 3 2 } - solbb = \musicalpitch { -1 4 -2 } - solb = \musicalpitch { -1 4 -1 } - sol = \musicalpitch { -1 4 0 } - sold = \musicalpitch { -1 4 1 } - soldd = \musicalpitch { -1 4 2 } - labb = \musicalpitch { -1 5 -2 } - lab = \musicalpitch { -1 5 -1 } - la = \musicalpitch { -1 5 0 } - lad = \musicalpitch { -1 5 1 } - ladd = \musicalpitch { -1 5 2 } - sibb = \musicalpitch { -1 6 -2 } - sib = \musicalpitch { -1 6 -1 } - si = \musicalpitch { -1 6 0 } - sid = \musicalpitch { -1 6 1 } - sidd = \musicalpitch { -1 6 2 } % For using "sostingut" notation, which is also correct +\notenames #'( + (dobb . ( -1 0 -2 )) + (dob . ( -1 0 -1 )) + (do . ( -1 0 0 )) + (dod . ( -1 0 1 )) + (dodd . ( -1 0 2 )) + (rebb . ( -1 1 -2 )) + (reb . ( -1 1 -1 )) + (re . ( -1 1 0 )) + (red . ( -1 1 1 )) + (redd . ( -1 1 2 )) + (mibb . ( -1 2 -2 )) + (mib . ( -1 2 -1 )) + (mi . ( -1 2 0 )) + (mid . ( -1 2 1 )) + (midd . ( -1 2 2 )) + (fabb . ( -1 3 -2 )) + (fab . ( -1 3 -1 )) + (fa . ( -1 3 0 )) + (fad . ( -1 3 1 )) + (fadd . ( -1 3 2 )) + (solbb . ( -1 4 -2 )) + (solb . ( -1 4 -1 )) + (sol . ( -1 4 0 )) + (sold . ( -1 4 1 )) + (soldd . ( -1 4 2 )) + (labb . ( -1 5 -2 )) + (lab . ( -1 5 -1 )) + (la . ( -1 5 0 )) + (lad . ( -1 5 1 )) + (ladd . ( -1 5 2 )) + (sibb . ( -1 6 -2 )) + (sib . ( -1 6 -1 )) + (si . ( -1 6 0 )) + (sid . ( -1 6 1 )) + (sidd . ( -1 6 2 )) + (dos . ( -1 0 1 )) + (doss . ( -1 0 2 )) + (res . ( -1 1 1 )) + (ress . ( -1 1 2 )) + (mis . ( -1 2 1 )) + (miss . ( -1 2 2 )) + (fas . ( -1 3 1 )) + (fass . ( -1 3 2 )) + (sols . ( -1 4 1 )) + (solss . ( -1 4 2 )) + (las . ( -1 5 1 )) + (lass . ( -1 5 2 )) + (sis . ( -1 6 1 )) + (siss . ( -1 6 2 )) +) - dos = \musicalpitch { -1 0 1 } - doss = \musicalpitch { -1 0 2 } - res = \musicalpitch { -1 1 1 } - ress = \musicalpitch { -1 1 2 } - mis = \musicalpitch { -1 2 1 } - miss = \musicalpitch { -1 2 2 } - fas = \musicalpitch { -1 3 1 } - fass = \musicalpitch { -1 3 2 } - sols = \musicalpitch { -1 4 1 } - solss = \musicalpitch { -1 4 2 } - las = \musicalpitch { -1 5 1 } - lass = \musicalpitch { -1 5 2 } - sis = \musicalpitch { -1 6 1 } - siss = \musicalpitch { -1 6 2 } -} +\version "1.3.38"; diff --git a/ly/chord-modifiers.ly b/ly/chord-modifiers.ly index 6f16728730..bab60b66f4 100644 --- a/ly/chord-modifiers.ly +++ b/ly/chord-modifiers.ly @@ -2,18 +2,22 @@ chord modifiers %} +% UGR #(eval-string (ly-gulp-file "chord-names.scm")) -\chordmodifiers { - m = \musicalpitch { 0 2 -1 } - min = \musicalpitch { 0 2 -1 } - aug = \musicalpitch { 0 4 1 } - % urg! - % dim = \musicalpitch { -100 4 -1 } - dim = \musicalpitch { -100 2 -1 } - % urg, not actually a chord-modifier, but it works - % c7 -> , c 7+ -> c b - maj = \musicalpitch { 0 6 1 } - % sus4 should delete 2 too... - sus = \musicalpitch { 0 3 0 } -} + +% urg! +% +\chordmodifiers #'( + (m . ( 0 2 -1 )) + (min . ( 0 2 -1 )) + (aug . ( 0 4 1 )) +; (dim . ( -100 4 -1 )) + (dim . ( -100 2 -1 )) +; urg, not actually a chord-modifier, but it works +; c7 -> , c 7+ -> c b + (maj . ( 0 6 1 )) +; sus4 should delete 2 too... + (sus . ( 0 3 0 )) +) + diff --git a/ly/deutsch.ly b/ly/deutsch.ly index a1aa126891..9c0902ba00 100644 --- a/ly/deutsch.ly +++ b/ly/deutsch.ly @@ -7,91 +7,46 @@ % added asas and marked ases as `unusual' -% -% Please note that, while these names are used to enter *notes*, they -% actually are *melodic*s, i.e. they represent a pitch solely. Notes -% have a rhythmic part too. This is the reason that we don't write 'note { .. }' -% -\notenames { - ceses = \musicalpitch { -1 0 -2 } - ces = \musicalpitch { -1 0 -1 } - c = \musicalpitch { -1 0 0 } - cis = \musicalpitch { -1 0 1 } - cisis = \musicalpitch { -1 0 2 } - deses = \musicalpitch { -1 1 -2 } - des = \musicalpitch { -1 1 -1 } - d = \musicalpitch { -1 1 0 } - dis = \musicalpitch { -1 1 1 } - disis = \musicalpitch { -1 1 2 } - eses = \musicalpitch { -1 2 -2 } - es = \musicalpitch { -1 2 -1 } - e = \musicalpitch { -1 2 0 } - eis = \musicalpitch { -1 2 1 } - eisis = \musicalpitch { -1 2 2 } - feses = \musicalpitch { -1 3 -2 } - fes = \musicalpitch { -1 3 -1 } - f = \musicalpitch { -1 3 0 } - fis = \musicalpitch { -1 3 1 } - fisis = \musicalpitch { -1 3 2 } - geses = \musicalpitch { -1 4 -2 } - ges = \musicalpitch { -1 4 -1 } - g = \musicalpitch { -1 4 0 } - gis = \musicalpitch { -1 4 1 } - gisis = \musicalpitch { -1 4 2 } - asas = \musicalpitch { -1 5 -2 } - ases = \musicalpitch { -1 5 -2 } % non-standard name for asas - as = \musicalpitch { -1 5 -1 } - a = \musicalpitch { -1 5 0 } - ais = \musicalpitch { -1 5 1 } - aisis = \musicalpitch { -1 5 2 } - heses = \musicalpitch { -1 6 -2 } - b = \musicalpitch { -1 6 -1 } - h = \musicalpitch { -1 6 0 } - his = \musicalpitch { -1 6 1 } - hisis = \musicalpitch { -1 6 2 } - - - % - % upper case: 1 octave lower. - % - - - Ceses = \musicalpitch { -2 0 -2 } - Ces = \musicalpitch { -2 0 -1 } - C = \musicalpitch { -2 0 0 } - Cis = \musicalpitch { -2 0 1 } - Cisis = \musicalpitch { -2 0 2 } - Deses = \musicalpitch { -2 1 -2 } - Des = \musicalpitch { -2 1 -1 } - D = \musicalpitch { -2 1 0 } - Dis = \musicalpitch { -2 1 1 } - Disis = \musicalpitch { -2 1 2 } - Eses = \musicalpitch { -2 2 -2 } - Es = \musicalpitch { -2 2 -1 } - E = \musicalpitch { -2 2 0 } - Eis = \musicalpitch { -2 2 1 } - Eisis = \musicalpitch { -2 2 2 } - Feses = \musicalpitch { -2 3 -2 } - Fes = \musicalpitch { -2 3 -1 } - F = \musicalpitch { -2 3 0 } - Fis = \musicalpitch { -2 3 1 } - Fisis = \musicalpitch { -2 3 2 } - Geses = \musicalpitch { -2 4 -2 } - Ges = \musicalpitch { -2 4 -1 } - G = \musicalpitch { -2 4 0 } - Gis = \musicalpitch { -2 4 1 } - Gisis = \musicalpitch { -2 4 2 } - Asas = \musicalpitch { -2 5 -2 } - Ases = \musicalpitch { -2 5 -2 } % non-standard name for Asas - As = \musicalpitch { -2 5 -1 } - A = \musicalpitch { -2 5 0 } - Ais = \musicalpitch { -2 5 1 } - Aisis = \musicalpitch { -2 5 2 } - Heses = \musicalpitch { -2 6 -2 } - B = \musicalpitch { -2 6 -1 } - H = \musicalpitch { -2 6 0 } - His = \musicalpitch { -2 6 1 } - Hisis = \musicalpitch { -2 6 2 } +\notenames #'( + (ceses . ( -1 0 -2 )) + (ces . ( -1 0 -1 )) + (c . ( -1 0 0 )) + (cis . ( -1 0 1 )) + (cisis . ( -1 0 2 )) + (deses . ( -1 1 -2 )) + (des . ( -1 1 -1 )) + (d . ( -1 1 0 )) + (dis . ( -1 1 1 )) + (disis . ( -1 1 2 )) + (eses . ( -1 2 -2 )) + (es . ( -1 2 -1 )) + (e . ( -1 2 0 )) + (eis . ( -1 2 1 )) + (eisis . ( -1 2 2 )) + (feses . ( -1 3 -2 )) + (fes . ( -1 3 -1 )) + (f . ( -1 3 0 )) + (fis . ( -1 3 1 )) + (fisis . ( -1 3 2 )) + (geses . ( -1 4 -2 )) + (ges . ( -1 4 -1 )) + (g . ( -1 4 0 )) + (gis . ( -1 4 1 )) + (gisis . ( -1 4 2 )) + (asas . ( -1 5 -2 )) + (ases . ( -1 5 -2 )) ; non-standard name for asas + (as . ( -1 5 -1 )) + (a . ( -1 5 0 )) + (ais . ( -1 5 1 )) + (aisis . ( -1 5 2 )) + (heses . ( -1 6 -2 )) + (b . ( -1 6 -1 )) + (h . ( -1 6 0 )) + (his . ( -1 6 1 )) + (hisis . ( -1 6 2 )) +) } + +\version "1.3.38"; diff --git a/ly/english.ly b/ly/english.ly index de66eda7d7..52022eb097 100644 --- a/ly/english.ly +++ b/ly/english.ly @@ -3,156 +3,79 @@ with s for sharp and f for flat. %} -\notenames { - cflatflat = \musicalpitch { -1 0 -2 } - cflat = \musicalpitch { -1 0 -1 } - c = \musicalpitch { -1 0 0 } - csharp = \musicalpitch { -1 0 1 } - csharpsharp = \musicalpitch { -1 0 2 } - dflatflat = \musicalpitch { -1 1 -2 } - dflat = \musicalpitch { -1 1 -1 } - d = \musicalpitch { -1 1 0 } - dsharp = \musicalpitch { -1 1 1 } - dsharpsharp = \musicalpitch { -1 1 2 } - eflatflat = \musicalpitch { -1 2 -2 } - eflat = \musicalpitch { -1 2 -1 } - e = \musicalpitch { -1 2 0 } - esharp = \musicalpitch { -1 2 1 } - esharpsharp = \musicalpitch { -1 2 2 } - fflatflat = \musicalpitch { -1 3 -2 } - fflat = \musicalpitch { -1 3 -1 } - f = \musicalpitch { -1 3 0 } - fsharp = \musicalpitch { -1 3 1 } - fsharpsharp = \musicalpitch { -1 3 2 } - gflatflat = \musicalpitch { -1 4 -2 } - gflat = \musicalpitch { -1 4 -1 } - g = \musicalpitch { -1 4 0 } - gsharp = \musicalpitch { -1 4 1 } - gsharpsharp = \musicalpitch { -1 4 2 } - aflatflat = \musicalpitch { -1 5 -2 } - aflat = \musicalpitch { -1 5 -1 } - a = \musicalpitch { -1 5 0 } - asharp = \musicalpitch { -1 5 1 } - asharpsharp = \musicalpitch { -1 5 2 } - bflatflat = \musicalpitch { -1 6 -2 } - bflat = \musicalpitch { -1 6 -1 } - b = \musicalpitch { -1 6 0 } - bsharp = \musicalpitch { -1 6 1 } - bsharpsharp = \musicalpitch { -1 6 2 } +\notenames #'( + (cflatflat . ( -1 0 -2 )) + (cflat . ( -1 0 -1 )) + (c . ( -1 0 0 )) + (csharp . ( -1 0 1 )) + (csharpsharp . ( -1 0 2 )) + (dflatflat . ( -1 1 -2 )) + (dflat . ( -1 1 -1 )) + (d . ( -1 1 0 )) + (dsharp . ( -1 1 1 )) + (dsharpsharp . ( -1 1 2 )) + (eflatflat . ( -1 2 -2 )) + (eflat . ( -1 2 -1 )) + (e . ( -1 2 0 )) + (esharp . ( -1 2 1 )) + (esharpsharp . ( -1 2 2 )) + (fflatflat . ( -1 3 -2 )) + (fflat . ( -1 3 -1 )) + (f . ( -1 3 0 )) + (fsharp . ( -1 3 1 )) + (fsharpsharp . ( -1 3 2 )) + (gflatflat . ( -1 4 -2 )) + (gflat . ( -1 4 -1 )) + (g . ( -1 4 0 )) + (gsharp . ( -1 4 1 )) + (gsharpsharp . ( -1 4 2 )) + (aflatflat . ( -1 5 -2 )) + (aflat . ( -1 5 -1 )) + (a . ( -1 5 0 )) + (asharp . ( -1 5 1 )) + (asharpsharp . ( -1 5 2 )) + (bflatflat . ( -1 6 -2 )) + (bflat . ( -1 6 -1 )) + (b . ( -1 6 0 )) + (bsharp . ( -1 6 1 )) + (bsharpsharp . ( -1 6 2 )) - cff = \musicalpitch { -1 0 -2 } - cf = \musicalpitch { -1 0 -1 } - c = \musicalpitch { -1 0 0 } - cs = \musicalpitch { -1 0 1 } - css = \musicalpitch { -1 0 2 } - dff = \musicalpitch { -1 1 -2 } - df = \musicalpitch { -1 1 -1 } - d = \musicalpitch { -1 1 0 } - ds = \musicalpitch { -1 1 1 } - dss = \musicalpitch { -1 1 2 } - eff = \musicalpitch { -1 2 -2 } - ef = \musicalpitch { -1 2 -1 } - e = \musicalpitch { -1 2 0 } - es = \musicalpitch { -1 2 1 } % es = E-flat in Dutch - ess = \musicalpitch { -1 2 2 } - fff = \musicalpitch { -1 3 -2 } - ff = \musicalpitch { -1 3 -1 } - f = \musicalpitch { -1 3 0 } - fs = \musicalpitch { -1 3 1 } - fss = \musicalpitch { -1 3 2 } - gff = \musicalpitch { -1 4 -2 } - gf = \musicalpitch { -1 4 -1 } - g = \musicalpitch { -1 4 0 } - gs = \musicalpitch { -1 4 1 } - gss = \musicalpitch { -1 4 2 } - aff = \musicalpitch { -1 5 -2 } - af = \musicalpitch { -1 5 -1 } - a = \musicalpitch { -1 5 0 } - as = \musicalpitch { -1 5 1 } % as = A-flat in Dutch - ass = \musicalpitch { -1 5 2 } - bff = \musicalpitch { -1 6 -2 } - bf = \musicalpitch { -1 6 -1 } - b = \musicalpitch { -1 6 0 } - bs = \musicalpitch { -1 6 1 } - bss = \musicalpitch { -1 6 2 } + (cff . ( -1 0 -2 )) + (cf . ( -1 0 -1 )) + (c . ( -1 0 0 )) + (cs . ( -1 0 1 )) + (css . ( -1 0 2 )) + (dff . ( -1 1 -2 )) + (df . ( -1 1 -1 )) + (d . ( -1 1 0 )) + (ds . ( -1 1 1 )) + (dss . ( -1 1 2 )) + (eff . ( -1 2 -2 )) + (ef . ( -1 2 -1 )) + (e . ( -1 2 0 )) + (es . ( -1 2 1 )) ; es = E-flat in Dutch + (ess . ( -1 2 2 )) + (fff . ( -1 3 -2 )) + (ff . ( -1 3 -1 )) + (f . ( -1 3 0 )) + (fs . ( -1 3 1 )) + (fss . ( -1 3 2 )) + (gff . ( -1 4 -2 )) + (gf . ( -1 4 -1 )) + (g . ( -1 4 0 )) + (gs . ( -1 4 1 )) + (gss . ( -1 4 2 )) + (aff . ( -1 5 -2 )) + (af . ( -1 5 -1 )) + (a . ( -1 5 0 )) + (as . ( -1 5 1 )) ; as = A-flat in Dutch + (ass . ( -1 5 2 )) + (bff . ( -1 6 -2 )) + (bf . ( -1 6 -1 )) + (b . ( -1 6 0 )) + (bs . ( -1 6 1 )) + (bss . ( -1 6 2 )) +) +\version "1.3.38"; - % - % upper case: 1 octave lower. - % - - - Cflatflat = \musicalpitch { -2 0 -2 } - Cflat = \musicalpitch { -2 0 -1 } - C = \musicalpitch { -2 0 0 } - Csharp = \musicalpitch { -2 0 1 } - Csharpsharp = \musicalpitch { -2 0 2 } - Dflatflat = \musicalpitch { -2 1 -2 } - Dflat = \musicalpitch { -2 1 -1 } - D = \musicalpitch { -2 1 0 } - Dsharp = \musicalpitch { -2 1 1 } - Dsharpsharp = \musicalpitch { -2 1 2 } - Eflatflat = \musicalpitch { -2 2 -2 } - Eflat = \musicalpitch { -2 2 -1 } - E = \musicalpitch { -2 2 0 } - Esharp = \musicalpitch { -2 2 1 } - Esharpsharp = \musicalpitch { -2 2 2 } - Fflatflat = \musicalpitch { -2 3 -2 } - Fflat = \musicalpitch { -2 3 -1 } - F = \musicalpitch { -2 3 0 } - Fsharp = \musicalpitch { -2 3 1 } - Fsharpsharp = \musicalpitch { -2 3 2 } - Gflatflat = \musicalpitch { -2 4 -2 } - Gflat = \musicalpitch { -2 4 -1 } - G = \musicalpitch { -2 4 0 } - Gsharp = \musicalpitch { -2 4 1 } - Gsharpsharp = \musicalpitch { -2 4 2 } - Aflatflat = \musicalpitch { -2 5 -2 } - Aflat = \musicalpitch { -2 5 -1 } - A = \musicalpitch { -2 5 0 } - Asharp = \musicalpitch { -2 5 1 } - Asharpsharp = \musicalpitch { -2 5 2 } - Bflatflat = \musicalpitch { -2 6 -2 } - Bflat = \musicalpitch { -2 6 -1 } - B = \musicalpitch { -2 6 0 } - Bsharp = \musicalpitch { -2 6 1 } - Bsharpsharp = \musicalpitch { -2 6 2 } - - Cff = \musicalpitch { -2 0 -2 } - Cf = \musicalpitch { -2 0 -1 } - C = \musicalpitch { -2 0 0 } - Cs = \musicalpitch { -2 0 1 } - Css = \musicalpitch { -2 0 2 } - Dff = \musicalpitch { -2 1 -2 } - Df = \musicalpitch { -2 1 -1 } - D = \musicalpitch { -2 1 0 } - Ds = \musicalpitch { -2 1 1 } - Dss = \musicalpitch { -2 1 2 } - Eff = \musicalpitch { -2 2 -2 } - Ef = \musicalpitch { -2 2 -1 } - E = \musicalpitch { -2 2 0 } - Es = \musicalpitch { -2 2 1 } - Ess = \musicalpitch { -2 2 2 } - Fff = \musicalpitch { -2 3 -2 } - Ff = \musicalpitch { -2 3 -1 } - F = \musicalpitch { -2 3 0 } - Fs = \musicalpitch { -2 3 1 } - Fss = \musicalpitch { -2 3 2 } - Gff = \musicalpitch { -2 4 -2 } - Gf = \musicalpitch { -2 4 -1 } - G = \musicalpitch { -2 4 0 } - Gs = \musicalpitch { -2 4 1 } - Gss = \musicalpitch { -2 4 2 } - Aff = \musicalpitch { -2 5 -2 } - Af = \musicalpitch { -2 5 -1 } - A = \musicalpitch { -2 5 0 } - As = \musicalpitch { -2 5 1 } - Ass = \musicalpitch { -2 5 2 } - Bff = \musicalpitch { -2 6 -2 } - Bf = \musicalpitch { -2 6 -1 } - B = \musicalpitch { -2 6 0 } - Bs = \musicalpitch { -2 6 1 } - Bss = \musicalpitch { -2 6 2 } - - -} diff --git a/ly/italiano.ly b/ly/italiano.ly index dd600a4396..e8bd6b4884 100644 --- a/ly/italiano.ly +++ b/ly/italiano.ly @@ -11,39 +11,41 @@ % contributed by Paolo Zuliani \notenames { - dobb = \musicalpitch { -1 0 -2 } - dob = \musicalpitch { -1 0 -1 } - do = \musicalpitch { -1 0 0 } - dod = \musicalpitch { -1 0 1 } - dodd = \musicalpitch { -1 0 2 } - rebb = \musicalpitch { -1 1 -2 } - reb = \musicalpitch { -1 1 -1 } - re = \musicalpitch { -1 1 0 } - red = \musicalpitch { -1 1 1 } - redd = \musicalpitch { -1 1 2 } - mibb = \musicalpitch { -1 2 -2 } - mib = \musicalpitch { -1 2 -1 } - mi = \musicalpitch { -1 2 0 } - mid = \musicalpitch { -1 2 1 } - midd = \musicalpitch { -1 2 2 } - fabb = \musicalpitch { -1 3 -2 } - fab = \musicalpitch { -1 3 -1 } - fa = \musicalpitch { -1 3 0 } - fad = \musicalpitch { -1 3 1 } - fadd = \musicalpitch { -1 3 2 } - solbb = \musicalpitch { -1 4 -2 } - solb = \musicalpitch { -1 4 -1 } - sol = \musicalpitch { -1 4 0 } - sold = \musicalpitch { -1 4 1 } - soldd = \musicalpitch { -1 4 2 } - labb = \musicalpitch { -1 5 -2 } - lab = \musicalpitch { -1 5 -1 } - la = \musicalpitch { -1 5 0 } - lad = \musicalpitch { -1 5 1 } - ladd = \musicalpitch { -1 5 2 } - sibb = \musicalpitch { -1 6 -2 } - sib = \musicalpitch { -1 6 -1 } - si = \musicalpitch { -1 6 0 } - sid = \musicalpitch { -1 6 1 } - sidd = \musicalpitch { -1 6 2 } + (dobb . ( -1 0 -2 )) + (dob . ( -1 0 -1 )) + (do . ( -1 0 0 )) + (dod . ( -1 0 1 )) + (dodd . ( -1 0 2 )) + (rebb . ( -1 1 -2 )) + (reb . ( -1 1 -1 )) + (re . ( -1 1 0 )) + (red . ( -1 1 1 )) + (redd . ( -1 1 2 )) + (mibb . ( -1 2 -2 )) + (mib . ( -1 2 -1 )) + (mi . ( -1 2 0 )) + (mid . ( -1 2 1 )) + (midd . ( -1 2 2 )) + (fabb . ( -1 3 -2 )) + (fab . ( -1 3 -1 )) + (fa . ( -1 3 0 )) + (fad . ( -1 3 1 )) + (fadd . ( -1 3 2 )) + (solbb . ( -1 4 -2 )) + (solb . ( -1 4 -1 )) + (sol . ( -1 4 0 )) + (sold . ( -1 4 1 )) + (soldd . ( -1 4 2 )) + (labb . ( -1 5 -2 )) + (lab . ( -1 5 -1 )) + (la . ( -1 5 0 )) + (lad . ( -1 5 1 )) + (ladd . ( -1 5 2 )) + (sibb . ( -1 6 -2 )) + (sib . ( -1 6 -1 )) + (si . ( -1 6 0 )) + (sid . ( -1 6 1 )) + (sidd . ( -1 6 2 )) } + +\version "1.3.38"; diff --git a/ly/nederlands.ly b/ly/nederlands.ly index b5a6d360bd..8153a09bd7 100644 --- a/ly/nederlands.ly +++ b/ly/nederlands.ly @@ -1,95 +1,47 @@ %{ - common dutch names for notes. "es" means flat, "is" means sharp + common dutch names for notes. es means flat, is means sharp %} -\notenames { - ceses = \musicalpitch { -1 0 -2 } - ces = \musicalpitch { -1 0 -1 } - c = \musicalpitch { -1 0 0 } - cis = \musicalpitch { -1 0 1 } - cisis = \musicalpitch { -1 0 2 } - deses = \musicalpitch { -1 1 -2 } - des = \musicalpitch { -1 1 -1 } - d = \musicalpitch { -1 1 0 } - dis = \musicalpitch { -1 1 1 } - disis = \musicalpitch { -1 1 2 } - eeses = \musicalpitch { -1 2 -2 } - eses = \musicalpitch { -1 2 -2 } - ees = \musicalpitch { -1 2 -1 } - es = \musicalpitch { -1 2 -1 } - e = \musicalpitch { -1 2 0 } - eis = \musicalpitch { -1 2 1 } - eisis = \musicalpitch { -1 2 2 } - feses = \musicalpitch { -1 3 -2 } - fes = \musicalpitch { -1 3 -1 } - f = \musicalpitch { -1 3 0 } - fis = \musicalpitch { -1 3 1 } - fisis = \musicalpitch { -1 3 2 } - geses = \musicalpitch { -1 4 -2 } - ges = \musicalpitch { -1 4 -1 } - g = \musicalpitch { -1 4 0 } - gis = \musicalpitch { -1 4 1 } - gisis = \musicalpitch { -1 4 2 } - aeses = \musicalpitch { -1 5 -2 } - ases = \musicalpitch { -1 5 -2 } - aes = \musicalpitch { -1 5 -1 } - as = \musicalpitch { -1 5 -1 } - a = \musicalpitch { -1 5 0 } - ais = \musicalpitch { -1 5 1 } - aisis = \musicalpitch { -1 5 2 } - beses = \musicalpitch { -1 6 -2 } - bes = \musicalpitch { -1 6 -1 } - b = \musicalpitch { -1 6 0 } - bis = \musicalpitch { -1 6 1 } - bisis = \musicalpitch { -1 6 2 } +\notenames + #'((ceses . (-1 0 -2 )) + (ces . ( -1 0 -1 )) + (c . ( -1 0 0 )) + (cis . ( -1 0 1 )) + (cisis . ( -1 0 2 )) + (deses . ( -1 1 -2 )) + (des . ( -1 1 -1 )) + (d . ( -1 1 0 )) + (dis . ( -1 1 1 )) + (disis . ( -1 1 2 )) + (eeses . ( -1 2 -2 )) + (eses . ( -1 2 -2 )) + (ees . ( -1 2 -1 )) + (es . ( -1 2 -1 )) + (e . ( -1 2 0 )) + (eis . ( -1 2 1 )) + (eisis . ( -1 2 2 )) + (feses . ( -1 3 -2 )) + (fes . ( -1 3 -1 )) + (f . ( -1 3 0 )) + (fis . ( -1 3 1 )) + (fisis . ( -1 3 2 )) + (geses . ( -1 4 -2 )) + (ges . ( -1 4 -1 )) + (g . ( -1 4 0 )) + (gis . ( -1 4 1 )) + (gisis . ( -1 4 2 )) + (aeses . ( -1 5 -2 )) + (ases . ( -1 5 -2 )) + (aes . ( -1 5 -1 )) + (as . ( -1 5 -1 )) + (a . ( -1 5 0 )) + (ais . ( -1 5 1 )) + (aisis . ( -1 5 2 )) + (beses . ( -1 6 -2 )) + (bes . ( -1 6 -1 )) + (b . ( -1 6 0 )) + (bis . ( -1 6 1 )) + (bisis . ( -1 6 2 ))) - % - % upper case: 1 octave lower. - % - - %% deprecated. - - Ceses = \musicalpitch { -2 0 -2 } - Ces = \musicalpitch { -2 0 -1 } - C = \musicalpitch { -2 0 0 } - Cis = \musicalpitch { -2 0 1 } - Cisis = \musicalpitch { -2 0 2 } - Deses = \musicalpitch { -2 1 -2 } - Des = \musicalpitch { -2 1 -1 } - D = \musicalpitch { -2 1 0 } - Dis = \musicalpitch { -2 1 1 } - Disis = \musicalpitch { -2 1 2 } - Eses = \musicalpitch { -2 2 -2 } - Eeses = \musicalpitch { -2 2 -2 } - Es = \musicalpitch { -2 2 -1 } - Ees = \musicalpitch { -2 2 -1 } - E = \musicalpitch { -2 2 0 } - Eis = \musicalpitch { -2 2 1 } - Eisis = \musicalpitch { -2 2 2 } - Feses = \musicalpitch { -2 3 -2 } - Fes = \musicalpitch { -2 3 -1 } - F = \musicalpitch { -2 3 0 } - Fis = \musicalpitch { -2 3 1 } - Fisis = \musicalpitch { -2 3 2 } - Geses = \musicalpitch { -2 4 -2 } - Ges = \musicalpitch { -2 4 -1 } - G = \musicalpitch { -2 4 0 } - Gis = \musicalpitch { -2 4 1 } - Gisis = \musicalpitch { -2 4 2 } - Aeses = \musicalpitch { -2 5 -2 } - Ases = \musicalpitch { -2 5 -2 } - Aes = \musicalpitch { -2 5 -1 } - As = \musicalpitch { -2 5 -1 } - A = \musicalpitch { -2 5 0 } - Ais = \musicalpitch { -2 5 1 } - Aisis = \musicalpitch { -2 5 2 } - Beses = \musicalpitch { -2 6 -2 } - Bes = \musicalpitch { -2 6 -1 } - B = \musicalpitch { -2 6 0 } - Bis = \musicalpitch { -2 6 1 } - Bisis = \musicalpitch { -2 6 2 } - - -} diff --git a/ly/norsk.ly b/ly/norsk.ly index 714eb10e46..7f28a7cb1e 100644 --- a/ly/norsk.ly +++ b/ly/norsk.ly @@ -27,157 +27,81 @@ %} -\notenames { - ceses = \musicalpitch { -1 0 -2 } - cessess = \musicalpitch { -1 0 -2 } - ces = \musicalpitch { -1 0 -1 } - cess = \musicalpitch { -1 0 -1 } - c = \musicalpitch { -1 0 0 } - cis = \musicalpitch { -1 0 1 } - ciss = \musicalpitch { -1 0 1 } - cisis = \musicalpitch { -1 0 2 } - cississ = \musicalpitch { -1 0 2 } - deses = \musicalpitch { -1 1 -2 } - dessess = \musicalpitch { -1 1 -2 } - des = \musicalpitch { -1 1 -1 } - dess = \musicalpitch { -1 1 -1 } - d = \musicalpitch { -1 1 0 } - dis = \musicalpitch { -1 1 1 } - diss = \musicalpitch { -1 1 1 } - disis = \musicalpitch { -1 1 2 } - dississ = \musicalpitch { -1 1 2 } - eeses = \musicalpitch { -1 2 -2 } - eessess = \musicalpitch { -1 2 -2 } - eses = \musicalpitch { -1 2 -2 } - essess = \musicalpitch { -1 2 -2 } - ees = \musicalpitch { -1 2 -1 } - eess = \musicalpitch { -1 2 -1 } - es = \musicalpitch { -1 2 -1 } - ess = \musicalpitch { -1 2 -1 } - e = \musicalpitch { -1 2 0 } - eis = \musicalpitch { -1 2 1 } - eiss = \musicalpitch { -1 2 1 } - eisis = \musicalpitch { -1 2 2 } - eississ = \musicalpitch { -1 2 2 } - feses = \musicalpitch { -1 3 -2 } - fessess = \musicalpitch { -1 3 -2 } - fes = \musicalpitch { -1 3 -1 } - fess = \musicalpitch { -1 3 -1 } - f = \musicalpitch { -1 3 0 } - fis = \musicalpitch { -1 3 1 } - fiss = \musicalpitch { -1 3 1 } - fisis = \musicalpitch { -1 3 2 } - fississ = \musicalpitch { -1 3 2 } - geses = \musicalpitch { -1 4 -2 } - gessess = \musicalpitch { -1 4 -2 } - ges = \musicalpitch { -1 4 -1 } - gess = \musicalpitch { -1 4 -1 } - g = \musicalpitch { -1 4 0 } - g = \musicalpitch { -1 4 0 } - gis = \musicalpitch { -1 4 1 } - giss = \musicalpitch { -1 4 1 } - gisis = \musicalpitch { -1 4 2 } - gississ = \musicalpitch { -1 4 2 } - aeses = \musicalpitch { -1 5 -2 } - aessess = \musicalpitch { -1 5 -2 } - ases = \musicalpitch { -1 5 -2 } - assess = \musicalpitch { -1 5 -2 } - aes = \musicalpitch { -1 5 -1 } - aess = \musicalpitch { -1 5 -1 } - as = \musicalpitch { -1 5 -1 } - ass = \musicalpitch { -1 5 -1 } - a = \musicalpitch { -1 5 0 } - ais = \musicalpitch { -1 5 1 } - aiss = \musicalpitch { -1 5 1 } - aisis = \musicalpitch { -1 5 2 } - aississ = \musicalpitch { -1 5 2 } - bes = \musicalpitch { -1 6 -2 } - bess = \musicalpitch { -1 6 -2 } - b = \musicalpitch { -1 6 -1 } - b = \musicalpitch { -1 6 -1 } - h = \musicalpitch { -1 6 0 } - his = \musicalpitch { -1 6 1 } - hiss = \musicalpitch { -1 6 1 } - hisis = \musicalpitch { -1 6 2 } - hississ = \musicalpitch { -1 6 2 } - - - % - % upper case: 1 octave lower, as usual. - % - - - Ceses = \musicalpitch { -2 0 -2 } - Cessess = \musicalpitch { -2 0 -2 } - Ces = \musicalpitch { -2 0 -1 } - Cess = \musicalpitch { -2 0 -1 } - C = \musicalpitch { -2 0 0 } - Cis = \musicalpitch { -2 0 1 } - Ciss = \musicalpitch { -2 0 1 } - Cisis = \musicalpitch { -2 0 2 } - Cississ = \musicalpitch { -2 0 2 } - Deses = \musicalpitch { -2 1 -2 } - Dessess = \musicalpitch { -2 1 -2 } - Des = \musicalpitch { -2 1 -1 } - Dess = \musicalpitch { -2 1 -1 } - D = \musicalpitch { -2 1 0 } - D = \musicalpitch { -2 1 0 } - Dis = \musicalpitch { -2 1 1 } - Diss = \musicalpitch { -2 1 1 } - Disis = \musicalpitch { -2 1 2 } - Dississ = \musicalpitch { -2 1 2 } - Eses = \musicalpitch { -2 2 -2 } - Essess = \musicalpitch { -2 2 -2 } - Es = \musicalpitch { -2 2 -1 } - Ess = \musicalpitch { -2 2 -1 } - E = \musicalpitch { -2 2 0 } - E = \musicalpitch { -2 2 0 } - Eis = \musicalpitch { -2 2 1 } - Eiss = \musicalpitch { -2 2 1 } - Eisis = \musicalpitch { -2 2 2 } - Eississ = \musicalpitch { -2 2 2 } - Feses = \musicalpitch { -2 3 -2 } - Fessess = \musicalpitch { -2 3 -2 } - Fes = \musicalpitch { -2 3 -1 } - Fess = \musicalpitch { -2 3 -1 } - F = \musicalpitch { -2 3 0 } - Fis = \musicalpitch { -2 3 1 } - Fiss = \musicalpitch { -2 3 1 } - Fisis = \musicalpitch { -2 3 2 } - Fississ = \musicalpitch { -2 3 2 } - Geses = \musicalpitch { -2 4 -2 } - Gessess = \musicalpitch { -2 4 -2 } - Ges = \musicalpitch { -2 4 -1 } - Gess = \musicalpitch { -2 4 -1 } - G = \musicalpitch { -2 4 0 } - Gis = \musicalpitch { -2 4 1 } - Giss = \musicalpitch { -2 4 1 } - Gisis = \musicalpitch { -2 4 2 } - Gississ = \musicalpitch { -2 4 2 } - Aeses = \musicalpitch { -2 5 -2 } - Aessess = \musicalpitch { -2 5 -2 } - Ases = \musicalpitch { -2 5 -2 } - Assess = \musicalpitch { -2 5 -2 } - Aes = \musicalpitch { -2 5 -1 } - Aess = \musicalpitch { -2 5 -1 } - As = \musicalpitch { -2 5 -1 } - Ass = \musicalpitch { -2 5 -1 } - A = \musicalpitch { -2 5 0 } - A = \musicalpitch { -2 5 0 } - Ais = \musicalpitch { -2 5 1 } - Aiss = \musicalpitch { -2 5 1 } - Aisis = \musicalpitch { -2 5 2 } - Aississ = \musicalpitch { -2 5 2 } - Bes = \musicalpitch { -2 6 -2 } - Bess = \musicalpitch { -2 6 -2 } - B = \musicalpitch { -2 6 -1 } - H = \musicalpitch { -2 6 0 } - His = \musicalpitch { -2 6 1 } - Hiss = \musicalpitch { -2 6 1 } - Hisis = \musicalpitch { -2 6 2 } - Hississ = \musicalpitch { -2 6 2 } - -} - - - +\notenames #'( + (ceses . ( -1 0 -2 )) + (cessess . ( -1 0 -2 )) + (ces . ( -1 0 -1 )) + (cess . ( -1 0 -1 )) + (c . ( -1 0 0 )) + (cis . ( -1 0 1 )) + (ciss . ( -1 0 1 )) + (cisis . ( -1 0 2 )) + (cississ . ( -1 0 2 )) + (deses . ( -1 1 -2 )) + (dessess . ( -1 1 -2 )) + (des . ( -1 1 -1 )) + (dess . ( -1 1 -1 )) + (d . ( -1 1 0 )) + (dis . ( -1 1 1 )) + (diss . ( -1 1 1 )) + (disis . ( -1 1 2 )) + (dississ . ( -1 1 2 )) + (eeses . ( -1 2 -2 )) + (eessess . ( -1 2 -2 )) + (eses . ( -1 2 -2 )) + (essess . ( -1 2 -2 )) + (ees . ( -1 2 -1 )) + (eess . ( -1 2 -1 )) + (es . ( -1 2 -1 )) + (ess . ( -1 2 -1 )) + (e . ( -1 2 0 )) + (eis . ( -1 2 1 )) + (eiss . ( -1 2 1 )) + (eisis . ( -1 2 2 )) + (eississ . ( -1 2 2 )) + (feses . ( -1 3 -2 )) + (fessess . ( -1 3 -2 )) + (fes . ( -1 3 -1 )) + (fess . ( -1 3 -1 )) + (f . ( -1 3 0 )) + (fis . ( -1 3 1 )) + (fiss . ( -1 3 1 )) + (fisis . ( -1 3 2 )) + (fississ . ( -1 3 2 )) + (geses . ( -1 4 -2 )) + (gessess . ( -1 4 -2 )) + (ges . ( -1 4 -1 )) + (gess . ( -1 4 -1 )) + (g . ( -1 4 0 )) + (g . ( -1 4 0 )) + (gis . ( -1 4 1 )) + (giss . ( -1 4 1 )) + (gisis . ( -1 4 2 )) + (gississ . ( -1 4 2 )) + (aeses . ( -1 5 -2 )) + (aessess . ( -1 5 -2 )) + (ases . ( -1 5 -2 )) + (assess . ( -1 5 -2 )) + (aes . ( -1 5 -1 )) + (aess . ( -1 5 -1 )) + (as . ( -1 5 -1 )) + (ass . ( -1 5 -1 )) + (a . ( -1 5 0 )) + (ais . ( -1 5 1 )) + (aiss . ( -1 5 1 )) + (aisis . ( -1 5 2 )) + (aississ . ( -1 5 2 )) + (bes . ( -1 6 -2 )) + (bess . ( -1 6 -2 )) + (b . ( -1 6 -1 )) + (b . ( -1 6 -1 )) + (h . ( -1 6 0 )) + (his . ( -1 6 1 )) + (hiss . ( -1 6 1 )) + (hisis . ( -1 6 2 )) + (hississ . ( -1 6 2 )) +) + + + +\version "1.3.38"; diff --git a/ly/svenska.ly b/ly/svenska.ly index d5422ce646..a986af1b07 100644 --- a/ly/svenska.ly +++ b/ly/svenska.ly @@ -3,84 +3,41 @@ % % by Mats Bengtsson. -\notenames { - cessess = \musicalpitch { -1 0 -2 } - cess = \musicalpitch { -1 0 -1 } - c = \musicalpitch { -1 0 0 } - ciss = \musicalpitch { -1 0 1 } - cississ = \musicalpitch { -1 0 2 } - dessess = \musicalpitch { -1 1 -2 } - dess = \musicalpitch { -1 1 -1 } - d = \musicalpitch { -1 1 0 } - diss = \musicalpitch { -1 1 1 } - dississ = \musicalpitch { -1 1 2 } - essess = \musicalpitch { -1 2 -2 } - ess = \musicalpitch { -1 2 -1 } - e = \musicalpitch { -1 2 0 } - eiss = \musicalpitch { -1 2 1 } - eississ = \musicalpitch { -1 2 2 } - fessess = \musicalpitch { -1 3 -2 } - fess = \musicalpitch { -1 3 -1 } - f = \musicalpitch { -1 3 0 } - fiss = \musicalpitch { -1 3 1 } - fississ = \musicalpitch { -1 3 2 } - gessess = \musicalpitch { -1 4 -2 } - gess = \musicalpitch { -1 4 -1 } - g = \musicalpitch { -1 4 0 } - giss = \musicalpitch { -1 4 1 } - gississ = \musicalpitch { -1 4 2 } - assess = \musicalpitch { -1 5 -2 } - ass = \musicalpitch { -1 5 -1 } - a = \musicalpitch { -1 5 0 } - aiss = \musicalpitch { -1 5 1 } - aississ = \musicalpitch { -1 5 2 } - hessess = \musicalpitch { -1 6 -2 } - b = \musicalpitch { -1 6 -1 } - h = \musicalpitch { -1 6 0 } - hiss = \musicalpitch { -1 6 1 } - hississ = \musicalpitch { -1 6 2 } - - - % - % upper case: 1 octave lower. - % - - - Cessess = \musicalpitch { -2 0 -2 } - Cess = \musicalpitch { -2 0 -1 } - C = \musicalpitch { -2 0 0 } - Ciss = \musicalpitch { -2 0 1 } - Cississ = \musicalpitch { -2 0 2 } - Dessess = \musicalpitch { -2 1 -2 } - Dess = \musicalpitch { -2 1 -1 } - D = \musicalpitch { -2 1 0 } - Diss = \musicalpitch { -2 1 1 } - Dississ = \musicalpitch { -2 1 2 } - Essess = \musicalpitch { -2 2 -2 } - Ess = \musicalpitch { -2 2 -1 } - E = \musicalpitch { -2 2 0 } - Eiss = \musicalpitch { -2 2 1 } - Eississ = \musicalpitch { -2 2 2 } - Fessess = \musicalpitch { -2 3 -2 } - Fess = \musicalpitch { -2 3 -1 } - F = \musicalpitch { -2 3 0 } - Fiss = \musicalpitch { -2 3 1 } - Fississ = \musicalpitch { -2 3 2 } - Gessess = \musicalpitch { -2 4 -2 } - Gess = \musicalpitch { -2 4 -1 } - G = \musicalpitch { -2 4 0 } - Giss = \musicalpitch { -2 4 1 } - Gississ = \musicalpitch { -2 4 2 } - Assess = \musicalpitch { -2 5 -2 } - Ass = \musicalpitch { -2 5 -1 } - A = \musicalpitch { -2 5 0 } - Aiss = \musicalpitch { -2 5 1 } - Aississ = \musicalpitch { -2 5 2 } - Hessess = \musicalpitch { -2 6 -2 } - B = \musicalpitch { -2 6 -1 } - H = \musicalpitch { -2 6 0 } - Hiss = \musicalpitch { -2 6 1 } - Hississ = \musicalpitch { -2 6 2 } - - -} +\notenames #'( + (cessess . ( -1 0 -2 )) + (cess . ( -1 0 -1 )) + (c . ( -1 0 0 )) + (ciss . ( -1 0 1 )) + (cississ . ( -1 0 2 )) + (dessess . ( -1 1 -2 )) + (dess . ( -1 1 -1 )) + (d . ( -1 1 0 )) + (diss . ( -1 1 1 )) + (dississ . ( -1 1 2 )) + (essess . ( -1 2 -2 )) + (ess . ( -1 2 -1 )) + (e . ( -1 2 0 )) + (eiss . ( -1 2 1 )) + (eississ . ( -1 2 2 )) + (fessess . ( -1 3 -2 )) + (fess . ( -1 3 -1 )) + (f . ( -1 3 0 )) + (fiss . ( -1 3 1 )) + (fississ . ( -1 3 2 )) + (gessess . ( -1 4 -2 )) + (gess . ( -1 4 -1 )) + (g . ( -1 4 0 )) + (giss . ( -1 4 1 )) + (gississ . ( -1 4 2 )) + (assess . ( -1 5 -2 )) + (ass . ( -1 5 -1 )) + (a . ( -1 5 0 )) + (aiss . ( -1 5 1 )) + (aississ . ( -1 5 2 )) + (hessess . ( -1 6 -2 )) + (b . ( -1 6 -1 )) + (h . ( -1 6 0 )) + (hiss . ( -1 6 1 )) + (hississ . ( -1 6 2 )) +) +\version "1.3.38"; diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 1696317bd1..6b9e6c6727 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ Begin3 Title: LilyPond -Version: 1.3.38 -Entered-date: 22MAR00 +Version: 1.3.39 +Entered-date: 24MAR00 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.38.tar.gz + 1000k lilypond-1.3.39.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 1000k lilypond-1.3.38.tar.gz + 1000k lilypond-1.3.39.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index fab35f568f..16ed188309 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.3.38 +Version: 1.3.39 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.38.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.39.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/scripts/convert-mudela.py b/scripts/convert-mudela.py index 5970042939..8c2e6891ac 100644 --- a/scripts/convert-mudela.py +++ b/scripts/convert-mudela.py @@ -426,6 +426,19 @@ if 1: conversions.append ((1,3,35), conv, 'textEmptyDimension -> textNonEmpty') +if 1: + def conv (str): + str = re.sub ("([a-z]+)[ \t]*=[ \t]*\\\\musicalpitch *{([- 0-9]+)} *\n", + "(\\1 . (\\2))\n", str) + str = re.sub ("\\\\musicalpitch *{([0-9 -]+)}", + "\\\\musicalpitch #'(\\1)", str) + if re.search ('\\\\notenames',str): + sys.stderr.write ('\nNot smart enough to convert to new \\notenames format') + return str + + conversions.append ((1,3,38), conv, '\musicalpitch { a b c } -> #\'(a b c)') + + ############################