-1.3.61.jcn2
-===========
-
-* Included dutch po-update based on submitted 1.3.57 nl.po
+1.3.62
+======
-* Added "Development" link to website, now that "Home" is a relative link.
+* Made callbacks from Score_element::before_line_breaking() and
+Score_element::after_line_breaking()
-1.3.60.jcn2
-===========
+* Fixed website; backlinks should work again.
-* Did som more webpage hacking and made some make website fixes, back links
- should work again.
+* Removed --ignore-version option. Added --verbose option.
-1.3.60.jcn1
-===========
+1.3.61
+======
* Webpage hacking
<table align=left>
<tr><td bgcolor="#e8e8ff"><a href="@INDEX@"><b>Home</b></a></td></tr>
<tr><td><font size=-1>
- <a href="http://www.cs.uu.nl/~hanwen/lilypond">Development</a><br>
<a href="http://appel.dyndns.org/lilypond">Hacking</a><br>
<a href="http://www.gnu.org">GNU Project</a><br>
<a href="http://www2.iro.umontreal.ca/~pinard/po/registry.cgi?domain=lilypond">Translations</a><br>
Check out
@uref{ftp://ftp.python.org} or @uref{ftp://ftp.cwi.nl/pub/python}.
-@item GUILE 1.3.4, check out @uref{http://www.gnu.org/software/guile/guile.html,http://www.gnu.org/software/guile/guile.html}.
+@item GUILE 1.3.4 or newer, check out
+@uref{http://www.gnu.org/software/guile/guile.html,http://www.gnu.org/software/guile/guile.html}.
+Version 1.4 is recommended for better performance.
-@item GNU make.
-Check out @uref{ftp://ftp.gnu.org/gnu/make/,ftp://ftp.gnu.org/gnu/make/}.
+@item GNU Make.
+Check out
+@uref{ftp://ftp.gnu.org/gnu/make/,ftp://ftp.gnu.org/gnu/make/}.
@item Flex (version 2.5.4 or newer).
Check out @uref{ftp://ftp.gnu.org/gnu/flex/,ftp://ftp.gnu.org/gnu/flex/}.
@mudela[verbatim]
-\version "1.3.61";
+\version "1.3.60";
\include "paper16.ly";
viola = \notes \relative c' \context Voice = viola {
* Python 1.5, Check out `ftp://ftp.python.org' or
`ftp://ftp.cwi.nl/pub/python'.
- * GUILE 1.3.4, check out
+ * GUILE 1.3.4 or newer, check out
http://www.gnu.org/software/guile/guile.html
- (http://www.gnu.org/software/guile/guile.html).
+ (http://www.gnu.org/software/guile/guile.html). Version 1.4 is
+ recommended for better performance.
- * GNU make. Check out ftp://ftp.gnu.org/gnu/make/
+ * GNU Make. Check out ftp://ftp.gnu.org/gnu/make/
(ftp://ftp.gnu.org/gnu/make/).
* Flex (version 2.5.4 or newer). Check out
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=3
-PATCH_LEVEL=61
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=62
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
#ifndef POINTER_HH
#define POINTER_HH
+#error
+
/** P<T> is a handy template to use iso T*. It inits to 0, deletes on
destruction, deep copies upon copying
-
-\context Voice { <f,4. c'' d e f>}
--- /dev/null
+\score {
+\notes\context Voice { <f,4. c'' d e f>}
+}
--- /dev/null
+\header{
+enteredby = "Donat Wullschleger";
+}
+
+\version "1.3.59";
+
+\include "paper16.ly";
+\include "deutsch.ly";
+
+righthandfirstvoice = \notes \relative c''
+ \context Voice = upper {
+ \key b \major;
+ \time 6/8;
+
+ r8. r8. r8. r8. |
+ r4. r4. |
+ r2. |
+
+ \bar "|.";
+}
+
+lefthandfirstvoice = \notes \relative c
+ \context Voice = upper {
+ \voiceone
+ \key b \major;
+ \clef bass;
+
+ as4. [g8 a16 h c8] |
+ as4. [g8 a16 h c8] |
+ as4. [g8 a16 h c8] |
+}
+
+lefthandsecondvoice = \notes \relative c
+ \context Voice = lower {
+ \voicetwo
+ r2. |
+ r4. r4. |
+ r8. r8. r8. r8. |
+}
+
+\score{
+ \context PianoStaff \notes <
+ \context Staff = top <
+ \righthandfirstvoice
+ >
+ \context Staff = bottom <
+ \lefthandfirstvoice
+ \lefthandsecondvoice
+ >
+ >
+
+ \paper{
+ \translator{
+ \OrchestralScoreContext
+ }
+
+ }
+}
void
Align_note_column_engraver::do_creation_processing ()
{
- align_item_p_ = new Grace_align_item (SCM_EOL);
+ align_item_p_ = new Grace_align_item (get_property ("basicGraceAlignItemProperties"));
Side_position_interface (align_item_p_).set_axis (X_AXIS);
Side_position_interface (align_item_p_).set_direction (LEFT);
path = search_path_.find (path);
if (path.empty_b ())
return 0;
- progress_indication ("[" + path);
+
+ if (verbose_global_b)
+ progress_indication ("[" + path);
Adobe_font_metric * afm_p = read_afm_file (path);
afm_p->name_ = ly_symbol2scm (name.ch_C ());
- progress_indication ("]");
+
+ if (verbose_global_b)
+ progress_indication ("]");
afm_p_dict_.set (sname,afm_p->self_scm_);
}
path = search_path_.find (path);
if (path.empty_b ())
return 0;
- progress_indication ("[" + path);
+ if (verbose_global_b)
+ progress_indication ("[" + path);
Tex_font_metric * tfm_p = Tex_font_metric_reader::read_file (path);
tfm_p->name_ = ly_symbol2scm (name.ch_C( ));
- progress_indication ("]");
+
+ if (verbose_global_b)
+ progress_indication ("]");
tfm_p_dict_.set (sname, tfm_p->self_scm_);
}
if (f)
return f;
- non_fatal_error (_f ("can't find default font: `%s'", def_name.ch_C ()));
- non_fatal_error (_f ("(search path: `%s')", search_path_.str ()));
+ error (_f ("can't find default font: `%s'", def_name.ch_C ()));
+ error (_f ("(search path: `%s')", search_path_.str ()));
error (_ ("Giving up"));
return 0;
SCM
-Bar::scheme_molecule (SCM smob)
+Bar::brew_molecule (SCM smob)
{
Score_element * self = unsmob_element (smob);
Bar * fly = dynamic_cast<Bar*> (self);
return SCM_EOL;
}
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Bar);
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Bar,brew_molecule);
Molecule
Bar::compound_barline (String str, Real h) const
}
-void
-Bar::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Bar,before_line_breaking );
+SCM
+Bar::member_before_line_breaking ()
{
SCM g = get_elt_property ("glyph");
SCM orig = g;
}
else if (! gh_equal_p (g, orig))
set_elt_property ("glyph", g);
+
+
+ return SCM_UNDEFINED;
}
[Alternatively, stems could set its own directions, according to
their beam, during 'final-pre-processing'.]
*/
-void
-Beam::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Beam,before_line_breaking);
+SCM
+Beam::member_before_line_breaking ()
{
// Why?
if (visible_stem_count () < 2)
auto_knees ();
set_stem_directions ();
- set_stem_shorten ();
+ set_stem_shorten ();
+
+ return SCM_EOL;
}
/*
Set elt properties height and y-position if not set.
Adjust stem lengths to reach beam.
*/
-void
-Beam::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Beam,after_line_breaking);
+SCM
+Beam::member_after_line_breaking ()
{
/* first, calculate y, dy */
Real y, dy;
// UGH. Y is not in staff position unit?
// Ik dacht datwe daar juist van weg wilden?
set_stem_length (y, dy);
- set_elt_property ("y-position", gh_double2scm (y));
+ set_elt_property ("y-position", gh_double2scm (y));
+
+
+ return SCM_UNDEFINED;
}
/*
return leftbeams;
}
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS (Beam);
-
-Molecule
-Beam::do_brew_molecule () const
+GLUE_SCORE_ELEMENT(Beam,brew_molecule);
+SCM
+Beam::member_brew_molecule () const
{
Molecule mol;
if (!stem_count ())
- return mol;
+ return SCM_EOL;
Real x0,dx;
if (visible_stem_count ())
{
mol.translate_axis (x0
- get_bound (LEFT)->relative_coordinate (0, X_AXIS), X_AXIS);
- return mol;
+ return mol.create_scheme ();
}
int
#include "group-interface.hh"
#include "align-interface.hh"
-void
-Break_align_item::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Break_align_item,before_line_breaking);
+SCM
+Break_align_item::member_before_line_breaking ()
{
if (break_status_dir() == LEFT)
{
}
if (!elems.size ())
- return;
+ return SCM_UNDEFINED;
SCM symbol_list = SCM_EOL;
Array<Real> dists;
column_l ()->set_elt_property ("stretch-distance",
gh_cons (gh_double2scm (-dists[0]),
gh_double2scm (stretch_distance)));
-
+
+
+ return SCM_UNDEFINED;
}
Break_align_item::Break_align_item (SCM s)
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Breathing_sign);
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Breathing_sign,brew_molecule);
SCM
-Breathing_sign::scheme_molecule (SCM smob)
+Breathing_sign::brew_molecule (SCM smob)
{
Score_element * sc = unsmob_element (smob);
Staff_symbol_referencer_interface si (sc);
return sc->lookup_l()->filledbox(b).create_scheme ();
}
-void
-Breathing_sign::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Breathing_sign,after_line_breaking);
+SCM
+Breathing_sign::member_after_line_breaking ()
{
Real space = staff_symbol_referencer (this).staff_space();
Direction d = directional_element (this). get ();
}
translate_axis(2.0 * space * d, Y_AXIS);
+
+ return SCM_UNDEFINED;
}
return mol;
}
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Chord_name);
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Chord_name,brew_molecule);
SCM
-Chord_name::scheme_molecule (SCM smob)
+Chord_name::brew_molecule (SCM smob)
{
Score_element *sc = unsmob_element (smob);
SCM style = sc->get_elt_property ("style");
int j = Chord::find_pitch_i (add_arr_p, (*add_arr_p)[i]);
if ((j != -1) && (i != j))
{
- add_arr_p->get (i);
+ add_arr_p->get (i);
}
}
find tonic
first try: base of longest line of thirds
- */
+ */
int tonic_i = 0;
int longest_i = 0;
for (int i = 0; i < pitch_arr_p->size (); i++)
{
int gap = (*pitch_arr_p)[i].notename_i_
- (*pitch_arr_p)[(i - 1 + pitch_arr_p->size ())
- % pitch_arr_p->size ()].notename_i_;
+ % pitch_arr_p->size ()].notename_i_;
while (gap < 0)
gap += 7;
gap %= 7;
FIXME: this should be schemified.
*/
-void
-Clef_item::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Clef_item,before_line_breaking);
+SCM
+Clef_item::member_before_line_breaking ()
{
SCM style_sym =get_elt_property ("style");
String style;
else
{
suicide ();
- return;
+ return SCM_UNDEFINED;
}
// ugh.
set_elt_property ("molecule-callback", SCM_BOOL_T);
set_extent_callback (0, X_AXIS);
}
+
+ return SCM_UNDEFINED;
}
add_dependency (ncol_l);
}
-void
-Collision::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Collision,before_line_breaking);
+SCM
+Collision::member_before_line_breaking ()
{
do_shifts();
+ return SCM_UNDEFINED;
}
/*
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Crescendo)
-Molecule
-Crescendo::do_brew_molecule () const
+GLUE_SCORE_ELEMENT(Crescendo,brew_molecule);
+
+SCM
+Crescendo::member_brew_molecule () const
{
Real absdyn_dim = paper_l ()-> get_var ("crescendo_shorten");
Real extra_left = get_broken_left_end_align ();
{
Crescendo * me = (Crescendo*)this;
me->suicide ();
- Molecule m;
-
- return m;
+ return SCM_EOL;
}
Direction gd = to_dir (dir);
m.add_at_edge (X_AXIS, RIGHT, span, pad);
m.translate_axis (extra_left, X_AXIS);
- return m;
+ return m.create_scheme ();
}
Should be smarter.
*/
-void
-Dot_column::after_line_breaking ()
+
+GLUE_SCORE_ELEMENT(Dot_column,after_line_breaking);
+SCM
+Dot_column::member_after_line_breaking ()
{
Link_array<Dots> dots = Pointer_group_interface__extract_elements (this, (Dots*)0 , "dots");
dots.sort (Dot_column::compare);
if (dots.size () < 2)
- return;
+ return SCM_UNDEFINED;
Slice s;
s.set_empty ();
}
if (!conflicts)
- return;
+ return SCM_UNDEFINED;
+
int middle = s.center ();
/*
if (!(pos % 2))
pos ++; // center () rounds down.
- for (int i=0; i <dots.size (); pos += 2, i++)
+ for (int i=0; i < dots.size (); pos += 2, i++)
{
staff_symbol_referencer (dots[i]).set_position(pos);
}
+
+ return SCM_UNDEFINED;
}
{
}
-void
-Dots::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Dots,after_line_breaking);
+SCM
+Dots::member_after_line_breaking ()
{
SCM d= get_elt_property ("dot-count");
if (gh_number_p (d) && gh_scm2int (d))
if (!(p % 2))
si.set_position (p + directional_element (this).get ());
}
+
+ return SCM_UNDEFINED;
+
}
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Dots);
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Dots,brew_molecule);
SCM
-Dots::scheme_molecule (SCM d)
+Dots::brew_molecule (SCM d)
{
Score_element *sc = unsmob_element (d);
Molecule mol (sc->lookup_l ()->blank (Box (Interval (0,0),
/*
TODO: cfg-able
*/
-void
-Grace_align_item::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Grace_align_item,before_line_breaking);
+SCM
+Grace_align_item::member_before_line_breaking ()
{
Real nhw = // lookup_l ()->notehead (2, "")..extent (X_AXIS).length();
paper_l ()->get_var ("quartwidth");
gh_cons (gh_double2scm (nhw* 1.5),
gh_double2scm (infinity_f)));
column_l ()->set_elt_property ("contains-grace", SCM_BOOL_T);
+
+ return SCM_UNDEFINED;
+
}
(c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
-#include "hara-kiri-vertical-group-spanner.hh"
+#include "hara-kiri-group-spanner.hh"
#include "hara-kiri-engraver.hh"
#include "rhythmic-head.hh"
Spanner*
Hara_kiri_engraver::get_spanner_p () const
{
- return new Hara_kiri_group_spanner (SCM_EOL);
+ return new Hara_kiri_group_spanner (get_property ("basicHaraKiriVerticalGroupspannerProperties"));
}
void
#include "spanner.hh"
#include "item.hh"
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Hyphen_spanner)
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Hyphen_spanner,brew_molecule)
SCM
-Hyphen_spanner::scheme_molecule (SCM smob)
+Hyphen_spanner::brew_molecule (SCM smob)
{
Spanner * sp =dynamic_cast<Spanner*> (unsmob_element (smob));
Molecule mol;
#include "source-file.hh"
#include "source.hh"
#include "debug.hh"
+#include "main.hh"
#ifndef YY_BUF_SIZE
#define YY_BUF_SIZE 16384
char_count_stack_.push (0);
if (yy_current_buffer)
state_stack_.push (yy_current_buffer);
- progress_indication (String ("[") + s);
+
+ if (verbose_global_b)
+ progress_indication (String ("[") + s);
include_stack_.push (sl);
char_count_stack_.push (0);
if (yy_current_buffer)
state_stack_.push (yy_current_buffer);
- progress_indication (String ("[") + name);
+
+ if (verbose_global_b)
+ progress_indication (String ("[") + name);
include_stack_.push (file);
yy_switch_to_buffer (yy_create_buffer (file->istream_l (), YY_BUF_SIZE));
{
include_stack_.pop ();
char_count_stack_.pop ();
- progress_indication ("]");
+ if (verbose_global_b)
+ progress_indication ("]");
yy_delete_buffer (yy_current_buffer);
yy_current_buffer = 0;
if (state_stack_.empty ())
Molecule compound_barline (String, Real height) const;
Molecule simple_barline (Real wid, Real height) const;
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
-protected:
- virtual void before_line_breaking ();
+public:
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
virtual Real get_bar_size () const;
};
class Beam : public Spanner
{
public:
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
int stem_count () const;
int get_multiplicity () const;
-protected:
+public:
- virtual void before_line_breaking ();
- virtual void after_line_breaking ();
- Molecule do_brew_molecule () const;
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
+ SCM member_brew_molecule () const;
Molecule stem_beams (Stem *here, Stem *next, Stem *prev) const;
private:
class Break_align_item : public Item
{
-protected:
- virtual void before_line_breaking ();
public:
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+
Break_align_item (SCM s);
VIRTUAL_COPY_CONS(Score_element);
};
class Breathing_sign : public Item
{
public:
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
VIRTUAL_COPY_CONS(Score_element);
Breathing_sign (SCM s);
-protected:
- virtual void after_line_breaking ();
- Molecule do_brew_molecule () const;
+public:
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
+ SCM member_brew_molecule () const;
};
#endif // BREATHING_SIGN_HH
class Chord_name : public Item
{
public:
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
-VIRTUAL_COPY_CONS (Score_element);
+ VIRTUAL_COPY_CONS (Score_element);
Molecule ly_word2molecule (SCM scm, Real* x) const;
Molecule ly_text2molecule (SCM scm) const;
Chord_name(SCM s);
-protected:
- Molecule do_brew_molecule () const;
+public:
+ SCM member_brew_molecule () const;
};
*/
class Clef_item : public Item
{
-protected:
- virtual void before_line_breaking ();
public:
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+
VIRTUAL_COPY_CONS(Score_element);
Clef_item (SCM);
};
*/
class Collision : public Item
{
-protected:
+public:
SCM automatic_shift ();
SCM forced_shift ();
void do_shifts ();
- virtual void before_line_breaking ();
-public:
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+
void add_column (Note_column*ncol_l);
Collision(SCM);
*/
class Crescendo : public Spanner {
public:
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
-Crescendo(SCM);
-protected:
+ Crescendo(SCM);
+
VIRTUAL_COPY_CONS(Score_element);
- Molecule do_brew_molecule() const;
+ SCM member_brew_molecule() const;
private:
Molecule get_symbol() const;
void add_head (Rhythmic_head*);
Dot_column (SCM);
-protected:
- virtual void after_line_breaking ();
+
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
};
#endif // DOT_COLUMN_HH
*/
class Dots : public Item
{
-protected:
- Molecule do_brew_molecule () const;
- virtual void after_line_breaking ();
public:
- static SCM scheme_molecule (SCM);
-
+ SCM member_brew_molecule () const;
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
+ static SCM brew_molecule (SCM);
Dots (SCM);
};
Spanner*elt_l_;
Lyric_extender (Spanner*);
void set_textitem (Direction, Item*);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
};
#endif // EXTENDER_SPANNER_HH
public:
VIRTUAL_COPY_CONS (Score_element);
Grace_align_item (SCM);
-protected:
+
virtual void do_add_processing ();
- virtual void before_line_breaking ();
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
};
#endif /* GRACE_ALIGN_ITEM_HH */
Spanner* elt_l_;
Hyphen_spanner (Spanner*);
void set_textitem (Direction, Item*);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
};
#endif // HYPHEN_SPANNER_HH
public:
VIRTUAL_COPY_CONS(Score_element);
Key_item (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
-protected:
- Molecule do_brew_molecule() const;
+
+ SCM member_brew_molecule() const;
};
#endif // KEYITEM_HH
Molecule accidental (int,bool,bool) const;
public:
Local_key_item (SCM );
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
void add_pitch (Musical_pitch, bool cautionary, bool natural);
-protected:
- virtual void before_line_breaking ();
- Molecule do_brew_molecule() const;
+
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+ SCM member_brew_molecule() const;
};
#endif // LOCALKEYITEM_HH
extern bool experimental_features_global_b;
extern char const* output_global_ch;
extern bool dependency_global_b;
-extern bool version_ignore_global_b;
+extern bool verbose_global_b;
extern Array<String> get_inclusion_names ();
SCM fontify_atom (Font_metric*, SCM atom);
-Molecule create_molecule (SCM scheme_molecule);
+Molecule create_molecule (SCM brew_molecule);
{
public:
Multi_measure_rest (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
void add_column (Item*);
Molecule compound_rest (int)const;
-protected:
- Molecule do_brew_molecule () const;
+
+ SCM member_brew_molecule () const;
VIRTUAL_COPY_CONS (Score_element);
virtual void do_add_processing ();
- virtual void after_line_breaking ();
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
virtual Array<Rod> get_rods () const;
};
*/
class Note_column : public Item
{
-protected:
- virtual void after_line_breaking () ;
public:
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
static int shift_compare (Note_column *const &, Note_column*const&);
/** The relative position of the "voice" containing this
{
public:
static int compare (Note_head * const &a, Note_head *const &b) ;
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
Molecule ledger_line (Interval) const;
Note_head (SCM);
-protected:
- virtual void before_line_breaking ();
- Molecule do_brew_molecule() const;
+
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+ SCM member_brew_molecule() const;
};
#endif // NOTEHEAD_HH
Interval rest_dim () const;
Rest_collision(SCM);
-protected:
- virtual void before_line_breaking ();
+
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
};
#endif // REST_COLLISION_HH
*/
class Rest : public Rhythmic_head
{
-protected:
- virtual void after_line_breaking ();
- Molecule do_brew_molecule () const;
public:
- static SCM scheme_molecule (SCM);
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
+ SCM member_brew_molecule () const;
+
+ static SCM brew_molecule (SCM);
Rest (SCM s);
};
Stem * stem_l () const;
Dots * dots_l () const;
int dot_count () const;
-protected:
- virtual void after_line_breaking ();
+
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
Rhythmic_head (SCM s);
};
#funcptr# is the function to call to update this element.
*/
- void calculate_dependencies (int final, int busy, Score_element_method_pointer funcptr);
+ void calculate_dependencies (int final, int busy, SCM funcname);
static SCM handle_broken_smobs (SCM, SCM criterion);
virtual void do_space_processing ();
virtual void discretionary_processing ();
virtual void do_derived_mark ();
- /// do calculations before determining horizontal spacing
- virtual void before_line_breaking ();
- /// do calculations after determining horizontal spacing
- virtual void after_line_breaking ();
Molecule get_molecule () const;
void suicide ();
static Interval molecule_extent (Score_element const*,Axis);
protected:
-
/**
Junk score element. This is protected because this is supposed to
be handled by GUILE gc. */
///executed directly after the item is added to the Paper_score
virtual void do_add_processing ();
- Molecule do_brew_molecule ()const;
-
static Interval dim_cache_callback (Dimension_cache const*);
public:
+ SCM member_brew_molecule ()const;
+
static SCM ly_set_elt_property (SCM, SCM,SCM);
static SCM ly_get_elt_property (SCM, SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
virtual void handle_broken_dependencies ();
virtual void handle_prebroken_dependencies ();
Score_element * unsmob_element (SCM);
-#define MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(TYPE) \
+#define MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(TYPE, FUNC) \
void \
-TYPE ## __init_functions () \
+TYPE ## _ ## FUNC ## _init_functions () \
{ \
- scm_make_gsubr (#TYPE "::scheme_molecule", 1, 0, 0, \
- (SCM(*)(...))TYPE::scheme_molecule); \
+ scm_make_gsubr (#TYPE "::" #FUNC, 1, 0, 0, \
+ (SCM(*)(...))TYPE :: FUNC); \
} \
\
-ADD_SCM_INIT_FUNC(TYPE ## _molecule, TYPE ## __init_functions); \
+ADD_SCM_INIT_FUNC(TYPE ## _ ## FUNC ## _scelt, TYPE ## _ ## FUNC ## _init_functions); \
-#define MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(TYPE) \
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(TYPE);\
-SCM \
-TYPE::scheme_molecule (SCM smob) \
-{ \
+#define GLUE_SCORE_ELEMENT(TYPE, FUNC) \
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(TYPE,FUNC);\
+SCM \
+TYPE::FUNC (SCM smob) \
+{ \
TYPE * b = dynamic_cast<TYPE*> (unsmob_element (smob)); \
- return b ? b->do_brew_molecule ().create_scheme () : SCM_EOL; \
-} \
- \
-
+ return b ? b->member_ ## FUNC () : SCM_UNDEFINED; \
+} \
#endif // STAFFELEM_HH
public:
Script_column(SCM);
void add_staff_sided (Item*);
-protected:
- virtual void before_line_breaking ();
+
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
};
Molecule get_molecule (Direction d) const;
public:
Script (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
-protected:
- virtual void before_line_breaking ();
- virtual void after_line_breaking ();
- Molecule do_brew_molecule () const;
+
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
+ SCM member_brew_molecule () const;
};
#endif /* Stem_SCRIPT_HH */
VIRTUAL_COPY_CONS(Score_element);
void add_column (Note_column*);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
-
-
-protected:
- Molecule do_brew_molecule () const;
+ SCM member_brew_molecule () const;
virtual Array<Offset> get_encompass_offset_arr () const;
Bezier get_curve () const;
Drul_array<Real> dx_f_drul_;
virtual Direction get_default_dir () const;
- virtual void after_line_breaking ();
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
virtual void do_add_processing ();
Array<Rod> get_rods () const;
VIRTUAL_COPY_CONS(Score_element);
void add_bar (Score_element*);
-protected:
void evaluate_empty ();
static Interval width_callback(Score_element const*, Axis) ;
virtual Real get_bar_size () const;
- virtual void before_line_breaking ();
- virtual void after_line_breaking ();
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
};
#endif // SPAN_BAR_HH
int steps_i() const;
int line_count () const;
Staff_symbol (SCM s);
- static SCM scheme_molecule (SCM);
-
-
-protected:
+ static SCM brew_molecule (SCM);
VIRTUAL_COPY_CONS(Score_element);
- Molecule do_brew_molecule() const;
+ SCM member_brew_molecule() const;
};
#endif // STAFFSYM_HH
class Stem_tremolo : public Item {
-protected:
+public:
Stem * stem_l () const;
- Molecule do_brew_molecule () const;
+ SCM member_brew_molecule () const;
static Interval dim_callback (Score_element*, Axis);
-public:
- static SCM scheme_molecule (SCM);
-
-Stem_tremolo (SCM);
+ static SCM brew_molecule (SCM);
+ Stem_tremolo (SCM);
void set_stem (Stem *);
};
class Stem : public Item
{
public:
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
/// heads that the stem encompasses (positions)
Interval head_positions() const;
-protected:
+public:
friend class Stem_tremolo; // ugh.
Real get_default_stem_end_position () const;
void position_noteheads();
static Real off_callback (Score_element const*, Axis);
Molecule flag () const;
- virtual void before_line_breaking();
+ SCM member_before_line_breaking ();
+ static SCM before_line_breaking (SCM);
static Interval dim_callback (Score_element const*,Axis);
- Molecule do_brew_molecule() const;
+ SCM member_brew_molecule() const;
void set_spacing_hints () ;
};
{
public:
System_start_delimiter (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
VIRTUAL_COPY_CONS (Score_element);
-protected:
- virtual void after_line_breaking();
+
+ virtual SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
Molecule staff_bracket (Real) const;
Molecule staff_brace (Real) const;
VIRTUAL_COPY_CONS (Score_element);
void add_tie (Tie*);
Tie_column (SCM s);
-protected:
- virtual void after_line_breaking ();
+
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
void set_directions ();
};
Note_head* head (Direction) const;
Real position_f () const;
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
virtual Direction get_default_dir() const;
-protected:
- Molecule do_brew_molecule () const;
+
+ SCM member_brew_molecule () const;
virtual Array<Offset> get_encompass_offset_arr () const;
Bezier get_curve () const;
Drul_array<Real> dx_f_drul_;
virtual void do_add_processing ();
- virtual void after_line_breaking ();
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
virtual Array<Rod> get_rods () const;
Molecule special_time_signature (String,int,int) const;
Molecule time_signature (int, int)const;
-protected:
- Molecule do_brew_molecule() const;
public:
+ SCM member_brew_molecule() const;
+
Time_signature (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
/*
#ifndef Tuplet_spanner_HH
#define Tuplet_spanner_HH
-#include "pointer.hh"
#include "spanner.hh"
/** supportable plet: triplets, eentweetjes, ottava, etc.
{
public:
Tuplet_spanner (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
void add_column (Note_column*);
void add_beam (Beam*);
-protected:
+
void calc_dy (Real *) const;
void calc_position_and_height (Real*,Real *dy)const;
- Molecule do_brew_molecule () const;
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
+ SCM member_brew_molecule () const;
VIRTUAL_COPY_CONS(Score_element);
+
virtual void do_add_processing ();
- virtual void after_line_breaking ();
virtual Direction get_default_dir () const;
};
#define VOLTA_SPANNER_HH
-#include "pointer.hh"
#include "spanner.hh"
/** Volta bracket with number */
{
public:
Volta_spanner (SCM);
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
void add_column (Note_column*);
void add_bar (Bar*);
-protected:
- Molecule do_brew_molecule () const;
+ SCM member_brew_molecule () const;
VIRTUAL_COPY_CONS (Score_element);
virtual void do_add_processing ();
- virtual void after_line_breaking ();
+ SCM member_after_line_breaking ();
+ static SCM after_line_breaking (SCM);
};
#endif // VOLTA_SPANNER_HH
}
}
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Key_item)
-
/*
TODO
- space the `natural' signs wider
*/
-Molecule
-Key_item::do_brew_molecule () const
+GLUE_SCORE_ELEMENT(Key_item,brew_molecule);
+SCM
+Key_item::member_brew_molecule () const
{
Molecule mol;
mol.add_at_edge (X_AXIS, LEFT, m,0);
}
}
-
-
}
-
- return mol;
+ return mol.create_scheme();
}
Mudela_version ver (s);
if (!((ver >= oldest_version) && (ver <= current)))
{
- error (_f ("incorrect mudela version: %s (%s, %s)", ver.str (), oldest_version.str (), current.str ()));
- if (!version_ignore_global_b)
- return false;
+ non_fatal_error (_f ("incorrect mudela version: %s (%s, %s)", ver.str (), oldest_version.str (), current.str ()));
+ non_fatal_error (_("Consider converting the input with the convert-mudela script"));
+ return false;
}
return true;
}
}
-/**
- Read a file, and shove it down GUILE. GUILE also has file read
- functions, but you can't fiddle with the path of those.
- */
-void
-read_lily_scm_file (String fn)
+String
+gulp_file_to_string (String fn)
{
String s = global_path.find (fn);
if (s == "")
e += _f ("(load path: `%s')", global_path.str ());
error (e);
}
- else
- progress_indication ("[" + s);
+ else if (verbose_global_b)
+ progress_indication ("[" + s );
Simple_file_storage f(s);
-
- gh_eval_str ((char *) f.ch_C());
- progress_indication ("]");
+ String result (f.ch_C());
+ if (verbose_global_b)
+ progress_indication ("]");
+ return result;
}
-
SCM
-ly_gulp_file (SCM name)
+ly_gulp_file (SCM fn)
{
- String fn (ly_scm2string (name));
- String s = global_path.find (fn);
- if (s == "")
- {
- String e = _f ("can't find file: `%s'", fn);
- e += " ";
- e += _f ("(load path: `%s')", global_path.str ());
- error (e);
- }
- else
- progress_indication ("[" + s );
+ return ly_str02scm (gulp_file_to_string (ly_scm2string (fn)).ch_C());
+}
- Simple_file_storage f(s);
- SCM result = ly_str02scm (f.ch_C());
- progress_indication ("]");
- return result;
+/**
+ Read a file, and shove it down GUILE. GUILE also has file read
+ functions, but you can't fiddle with the path of those.
+ */
+void
+read_lily_scm_file (String fn)
+{
+ gh_eval_str ((char *) gulp_file_to_string (fn).ch_C());
}
+
void
ly_display_scm (SCM s)
{
unsmob_element (gh_car (s))->handle_broken_dependencies ();
}
handle_broken_dependencies ();
- progress_indication ( _f("Element count %d.", count + element_count()));
+
+ if (verbose_global_b)
+ progress_indication ( _f("Element count %d.", count + element_count()));
for (int i=0; i < broken_into_l_arr_.size (); i++)
{
Line_of_score *line_l = dynamic_cast<Line_of_score*> (broken_into_l_arr_[i]);
- progress_indication ("[");
+ if (verbose_global_b)
+ progress_indication ("[");
line_l->post_processing ();
- progress_indication (to_str (i));
- progress_indication ("]");
+
+ if (verbose_global_b)
+ {
+ progress_indication (to_str (i));
+ progress_indication ("]");
+ }
}
}
for (SCM s = get_elt_pointer ("all-elements"); gh_pair_p (s); s = gh_cdr (s))
unsmob_element (gh_car (s))->discretionary_processing ();
- progress_indication ( _f("Element count %d ", element_count ()));
+ if(verbose_global_b)
+ progress_indication ( _f("Element count %d ", element_count ()));
for (SCM s = get_elt_pointer ("all-elements"); gh_pair_p (s); s = gh_cdr (s))
for (SCM s = get_elt_pointer ("all-elements"); 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);
+ sc->calculate_dependencies (PRECALCED, PRECALCING, ly_symbol2scm ("before-line-breaking-callback"));
}
progress_indication ("\n" + _ ("Calculating column positions...") + " " );
gh_pair_p (s); s = gh_cdr (s))
{
Score_element* sc = unsmob_element (gh_car (s));
- sc->calculate_dependencies (POSTCALCED, POSTCALCING, &Score_element::after_line_breaking);
+ sc->calculate_dependencies (POSTCALCED, POSTCALCING,
+ ly_symbol2scm ("after-line-breaking-callback"));
}
Interval i(extent(Y_AXIS));
#include "note-head.hh"
#include "misc.hh"
-
void
Local_key_item::add_pitch (Musical_pitch p, bool cautionary, bool natural)
{
accidental_arr_.push (t);
}
+GLUE_SCORE_ELEMENT(Local_key_item,before_line_breaking);
-
-void
-Local_key_item::before_line_breaking ()
+SCM
+Local_key_item::member_before_line_breaking ()
{
accidental_arr_.sort (Local_key_cautionary_tuple::compare);
+ return SCM_UNDEFINED;
}
Molecule
/*
UGH. clean me up
*/
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Local_key_item)
-Molecule
-Local_key_item::do_brew_molecule () const
+
+GLUE_SCORE_ELEMENT(Local_key_item,brew_molecule);
+SCM
+Local_key_item::member_brew_molecule () const
{
Molecule mol;
Staff_symbol_referencer_interface si (this);
} while ( flip (&d)!= LEFT);
}
- return mol;
+ return mol.create_scheme();
}
Local_key_item::Local_key_item (SCM s)
#include "extender-spanner.hh"
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Lyric_extender)
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Lyric_extender,brew_molecule)
SCM
-Lyric_extender::scheme_molecule (SCM smob)
+Lyric_extender::brew_molecule (SCM smob)
{
Spanner *sp = dynamic_cast<Spanner*> (unsmob_element (smob));
#endif
-bool version_ignore_global_b = false;
+bool verbose_global_b = false;
bool no_paper_global_b = false;
bool no_timestamps_global_b = false;
bool find_old_relative_b = false;
{0, "safe", 's', _i ("inhibit file output naming and exporting")},
{0, "no-timestamps", 'T', _i ("don't timestamp the output")},
{0, "test", 't', _i ("switch on experimental features")},
- {0, "ignore-version", 'V', _i ("ignore mudela version")},
{0, "version", 'v', _i ("print version number")},
+ {0, "verbose", 'V', _i("verbose")},
{0, "warranty", 'w', _i ("show warranty and copyright")},
{0,0,0, 0}
};
exit (0);
break;
case 'V':
- version_ignore_global_b = true;
+ verbose_global_b = true;
break;
case 's':
safe_global_b = true;
[TODO] 17
* variable-sized multi-measure rest symbol: |====| ??
*/
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Multi_measure_rest)
-Molecule
-Multi_measure_rest::do_brew_molecule () const
+
+GLUE_SCORE_ELEMENT(Multi_measure_rest,brew_molecule);
+
+SCM
+Multi_measure_rest::member_brew_molecule () const
{
Real staff_space
= staff_symbol_referencer (this).staff_space ();
mol.add_molecule (s);
}
mol.translate_axis (x_off, X_AXIS);
- return mol;
+ return mol.create_scheme();
}
/*
// set columns to SCM_EOL?
}
-void
-Multi_measure_rest::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Multi_measure_rest,after_line_breaking);
+SCM
+Multi_measure_rest::member_after_line_breaking ()
{
if (!gh_pair_p (get_elt_pointer ("columns")))
{
suicide ();
}
-
+
+ return SCM_UNDEFINED;
}
void
My_lily_parser::set_version_check (bool ig)
{
- ignore_version_b_ = ig;
}
void
rest -> stem -> beam -> interpolate_y_position ()
*/
-void
-Note_column::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Note_column,after_line_breaking);
+SCM
+Note_column::member_after_line_breaking ()
{
if (!stem_l () || !rest_b ())
- return;
+ return SCM_UNDEFINED;
Beam * b = stem_l ()->beam_l ();
if (!b || !b->visible_stem_count ())
- return;
+ return SCM_UNDEFINED;
/* ugh. Should be done by beam.
(what? should be done --jcn)
discrete_dist = int (ceil (discrete_dist / 2.0)* 2.0);
translate_rests (-d * discrete_dist);
+
+ return SCM_UNDEFINED;
}
}
-void
-Note_head::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Note_head,before_line_breaking);
+SCM
+Note_head::member_before_line_breaking ()
{
// 8 ball looks the same as 4 ball:
si.set_position(int (me.position_f ()));
}
+
+ return SCM_UNDEFINED;
}
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Note_head);
+GLUE_SCORE_ELEMENT(Note_head,brew_molecule);
-Molecule
-Note_head::do_brew_molecule() const
+SCM
+Note_head::member_brew_molecule () const
{
Staff_symbol_referencer_interface si (this);
out.add_molecule (s);
}
}
- return out;
+ return out.create_scheme();
}
void
Paper_score::process ()
{
- progress_indication ( _f("Element count %d ", line_l_->element_count ()));
+ if (verbose_global_b)
+ progress_indication ( _f("Element count %d ", line_l_->element_count ()));
+
progress_indication (_ ("Preprocessing elements...") + " ");
for (int i =0; i < audio_staff_l_arr_.size (); i++)
{
Audio_staff *s = audio_staff_l_arr_[i];
- progress_indication ("[" + to_str (i)) ;
+ if(verbose_global_b)
+ progress_indication ("[" + to_str (i)) ;
/*
Aargh, let's hear it for the MIDI standard.
if (channel == 9)
channel++;
s->output (midi_stream, channel++);
- progress_indication ("]");
+ if(verbose_global_b)
+ progress_indication ("]");
}
}
return dynamic_cast<Rhythmic_head*> (e);
}
-void
-Rest_collision::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Rest_collision,before_line_breaking);
+SCM
+Rest_collision::member_before_line_breaking ()
{
Link_array<Note_column> rest_l_arr =
Pointer_group_interface__extract_elements (this, (Note_column*) 0, "rests");
// no rests to collide
if (!rest_l_arr.size())
- return;
+ return SCM_UNDEFINED;
// no partners to collide with
if (rest_l_arr.size() + ncol_l_arr.size () < 2)
- return;
+ return SCM_UNDEFINED;
// meisjes met meisjes
if (!ncol_l_arr.size())
Interval restdim = rcol->rest_dim ();
if (restdim.empty_b ())
- return;
+ return SCM_UNDEFINED;
// staff ref'd?
Real staff_space = paper_l()->get_var ("interline");
rcol->translate_rests (dir * discrete_dist);
}
+ return SCM_UNDEFINED;
}
#include "staff-symbol-referencer.hh"
// -> offset callback
-void
-Rest::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Rest,after_line_breaking);
+SCM
+Rest::member_after_line_breaking ()
{
if (balltype_i () == 0)
{
staff_symbol_referencer (d)
.set_position ((balltype_i () == 7) ? 4 : 3);
}
+
+ return SCM_UNDEFINED;
}
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Rest)
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Rest,brew_molecule)
SCM
-Rest::scheme_molecule (SCM smob)
+Rest::brew_molecule (SCM smob)
{
Score_element* sc = unsmob_element (smob);
? gh_scm2int (dots_l ()->get_elt_property ("dot-count")) : 0;
}
-void
-Rhythmic_head::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Rhythmic_head,after_line_breaking);
+SCM
+Rhythmic_head::member_after_line_breaking ()
{
if (Dots *d = dots_l ())
{
Staff_symbol_referencer_interface me (d);
si.set_position(int (me.position_f ()));
}
+
+ return SCM_UNDEFINED;
}
}
void
-Score_element::calculate_dependencies (int final, int busy,
- Score_element_method_pointer funcptr)
+Score_element::calculate_dependencies (int final, int busy, SCM funcname)
{
assert (status_i_ >=0);
for (SCM d= get_elt_pointer ("dependencies"); gh_pair_p (d); d = gh_cdr (d))
{
unsmob_element (gh_car (d))
- ->calculate_dependencies (final, busy, funcptr);
+ ->calculate_dependencies (final, busy, funcname);
}
- (this->*funcptr)();
+ // ughugh.
+ String s = ly_symbol2string (funcname);
+ SCM proc = get_elt_property (s.ch_C());
+ if (gh_procedure_p (proc))
+ gh_call1 (proc, this->self_scm_);
+
status_i_= final;
+
}
Molecule
{
}
-void
-Score_element::after_line_breaking ()
-{
-}
-
-
-void
-Score_element::before_line_breaking ()
-{
-}
-
void
Score_element::do_space_processing ()
{
}
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Score_element)
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Score_element,brew_molecule)
/*
ugh.
*/
SCM
-Score_element::scheme_molecule (SCM smob)
+Score_element::brew_molecule (SCM smob)
{
Score_element * sc = unsmob_element (smob);
SCM glyph = sc->get_elt_property ("glyph");
Music_output * output = trans_p->get_output_p();
delete trans_p;
- progress_indication (_f ("elapsed time: %.2f seconds", timer.read ()));
+ if(verbose_global_b)
+ progress_indication (_f ("elapsed time: %.2f seconds", timer.read ()));
output->header_l_ = header_p_;
output->origin_str_ = location_str();
source_global_l->set_path (&global_path);
{
My_lily_parser parser (source_global_l);
- parser.set_version_check (version_ignore_global_b);
+ parser.set_version_check (false);
+ cout << "\nNow processing `" << file_str << "'\n";
parser.parse_file (init_str, file_str);
if (parser.error_level_i_)
return gh_scm2int (p1) - gh_scm2int (p2);
}
-void
-Script_column::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Script_column,before_line_breaking);
+SCM
+Script_column::member_before_line_breaking ()
{
Drul_array<Link_array<Item> > arrs;
Link_array<Item> staff_sided
}
} while (flip (&d) != DOWN);
+
+ return SCM_UNDEFINED;
}
}
-void
-Script::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Script,before_line_breaking);
+SCM
+Script::member_before_line_breaking ()
{
/*
center my self on the note head.
*/
Score_element * e = parent_l(X_AXIS);
translate_axis (e->extent (X_AXIS).center (), X_AXIS);
+
+ return SCM_UNDEFINED;
}
-void
-Script::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Script,after_line_breaking);
+SCM
+Script::member_after_line_breaking ()
{
Side_position_interface i (this);
Direction d = i.get_direction ();
i.set_direction (d);
+
+ return SCM_UNDEFINED;
}
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Script)
-Molecule
-Script::do_brew_molecule () const
+
+GLUE_SCORE_ELEMENT(Script,brew_molecule);
+
+SCM
+Script::member_brew_molecule () const
{
Direction dir = DOWN;
SCM d = get_elt_property ("direction");
if (isdir_b (d))
dir = to_dir (d);
- return get_molecule (dir);
+ return get_molecule (dir).create_scheme();
}
return o;
}
-void
-Slur::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Slur,after_line_breaking);
+
+SCM
+Slur::member_after_line_breaking ()
{
set_extremities ();
set_control_points ();
+ return SCM_UNDEFINED;
}
/*
}
-
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Slur);
-
/*
Ugh should have dash-length + dash-period
*/
-Molecule
-Slur::do_brew_molecule () const
+GLUE_SCORE_ELEMENT(Slur,brew_molecule);
+SCM
+Slur::member_brew_molecule () const
{
Real thick = paper_l ()->get_var ("slur_thickness");
Bezier one = get_curve ();
else
a = lookup_l ()->slur (one, directional_element (this).get () * thick, thick);
- return a;
+ return a.create_scheme();
}
void
if (bar_l_arr_.size() >= 2 && !spanbar_p_)
{
- spanbar_p_ = get_span_bar_p( bar_l_arr_[0]->property_alist_);
+ spanbar_p_ = get_span_bar_p (get_property ("basicSpanBarProperties"));
+ spanbar_p_->set_elt_property ("glyph", bar_l_arr_[0]->get_elt_property ("glyph"));
+ spanbar_p_->set_elt_property ("visibility-lambda",
+ bar_l_arr_[0]->get_elt_property ("visibility-lambda"));
+
spanbar_p_->set_parent (bar_l_arr_[0], Y_AXIS);
spanbar_p_->set_parent (bar_l_arr_[0], X_AXIS);
return m.extent (X_AXIS);
}
-void
-Span_bar::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Span_bar,before_line_breaking);
+SCM
+Span_bar::member_before_line_breaking ()
{
- Bar::before_line_breaking ();
+ Bar::member_before_line_breaking ();
evaluate_empty ();
+
+ return SCM_UNDEFINED;
}
-void
-Span_bar::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Span_bar,after_line_breaking);
+SCM
+Span_bar::member_after_line_breaking ()
{
Interval i (get_spanned_interval ());
we have to translate ourselves to be in the center of the
interval that we span. */
translate_axis (i.center (), Y_AXIS);
+ return SCM_UNDEFINED;
}
void
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Staff_symbol)
-Molecule
-Staff_symbol::do_brew_molecule () const
+
+GLUE_SCORE_ELEMENT(Staff_symbol,brew_molecule);
+
+SCM
+Staff_symbol::member_brew_molecule () const
{
Score_element * common
= get_bound (LEFT)->common_refpoint (get_bound (RIGHT), X_AXIS);
m.add_molecule (a);
}
- return m;
+ return m.create_scheme();
}
int
}
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Stem_tremolo)
-Molecule
-Stem_tremolo::do_brew_molecule () const
+
+GLUE_SCORE_ELEMENT(Stem_tremolo,brew_molecule);
+SCM
+Stem_tremolo::member_brew_molecule () const
{
Stem * stem = stem_l ();
Beam * beam = stem->beam_l ();
whole_note_correction, dy));
}
- return mol;
+ return mol.create_scheme();
}
}
}
-void
-Stem::before_line_breaking ()
+GLUE_SCORE_ELEMENT(Stem,before_line_breaking);
+SCM
+Stem::member_before_line_breaking ()
{
stem_end_position (); // ugh. Trigger direction calc.
position_noteheads ();
}
set_spacing_hints ();
+ return SCM_UNDEFINED;
}
const Real ANGLE = 20* (2.0*M_PI/360.0); // ugh! Should be settable.
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Stem)
-Molecule
-Stem::do_brew_molecule () const
+
+GLUE_SCORE_ELEMENT(Stem,brew_molecule);
+
+SCM
+Stem::member_brew_molecule () const
{
Molecule mol;
mol.add_molecule (fl);
}
- return mol;
+ return mol.create_scheme();
}
Real
Properties:
- glyph -- text string (TODO: make one large glyph of the Ped symbol, removes need for do_brew_molecule ())
+ glyph -- text string (TODO: make one large glyph of the Ped symbol, removes need for member_brew_molecule ())
*/
struct Sustain_pedal
{
public:
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
};
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Sustain_pedal);
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Sustain_pedal,brew_molecule);
SCM
-Sustain_pedal::scheme_molecule (SCM smob)
+Sustain_pedal::brew_molecule (SCM smob)
{
Score_element * e = unsmob_element (smob);
return lookup_l ()->filledbox (Box (Interval(0,w), Interval(-h/2, h/2)));
}
-void
-System_start_delimiter::after_line_breaking ()
+GLUE_SCORE_ELEMENT(System_start_delimiter,after_line_breaking);
+SCM
+System_start_delimiter::member_after_line_breaking ()
{
SCM gl = get_elt_property ("glyph");
{
suicide ();
}
+ return SCM_UNDEFINED;
}
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(System_start_delimiter);
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(System_start_delimiter,brew_molecule);
SCM
-System_start_delimiter::scheme_molecule (SCM smob)
+System_start_delimiter::brew_molecule (SCM smob)
{
Score_element * sc = unsmob_element (smob);
struct Text_item
{
- static SCM scheme_molecule (SCM);
+ static SCM brew_molecule (SCM);
};
-MAKE_SCHEME_SCORE_ELEMENT_NON_DEFAULT_CALLBACKS(Text_item)
+MAKE_SCHEME_SCORE_ELEMENT_CALLBACK(Text_item,brew_molecule)
SCM
-Text_item::scheme_molecule (SCM sm)
+Text_item::brew_molecule (SCM sm)
{
Score_element * s = unsmob_element (sm);
Direction d = (Direction) sign (p);
if (!d)
d = UP;
-
directional_element (s[i]).set (d);
}
}
-void
-Tie_column::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Tie_column,after_line_breaking);
+SCM
+Tie_column::member_after_line_breaking ()
{
set_directions ();
+ return SCM_UNDEFINED;
}
index_set_cell (get_elt_pointer ("heads"), RIGHT, new_head_drul[RIGHT]->self_scm_ );
}
-void
-Tie::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Tie,after_line_breaking);
+SCM
+Tie::member_after_line_breaking ()
{
if (!head (LEFT) && !head (RIGHT))
{
programming_error ("Tie without heads.");
suicide ();
- return;
+ return SCM_UNDEFINED;
}
if (!directional_element (this).get ())
}
dy_f_drul_[LEFT] = dy_f_drul_[RIGHT] = y_f;
+
+ return SCM_UNDEFINED;
}
return a;
}
+GLUE_SCORE_ELEMENT(Tie,brew_molecule);
-
-
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Tie)
-Molecule
-Tie::do_brew_molecule () const
+SCM
+Tie::member_brew_molecule () const
{
Real thick = paper_l ()->get_var ("tie_thickness");
Bezier one = get_curve ();
else
a = lookup_l ()->slur (one, directional_element (this).get () * thick, thick);
- return a;
+ return a.create_scheme();
}
}
// ugh.!
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Time_signature)
-Molecule
-Time_signature::do_brew_molecule () const
+
+GLUE_SCORE_ELEMENT(Time_signature,brew_molecule);
+SCM
+Time_signature::member_brew_molecule () const
{
SCM st = get_elt_property ("style");
String style (ly_scm2string (st));
if (style[0]=='1')
{
- return time_signature (n, 0);
+ return time_signature (n, 0).create_scheme();
}
else
{
- return special_time_signature (style, n, d);
+ return special_time_signature (style, n, d).create_scheme();
}
}
else
- return time_signature (n,d);
+ return time_signature (n,d).create_scheme();
}
Molecule
/*
TODO.
*/
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Tuplet_spanner)
-Molecule
-Tuplet_spanner::do_brew_molecule () const
+
+GLUE_SCORE_ELEMENT(Tuplet_spanner,brew_molecule);
+SCM
+Tuplet_spanner::member_brew_molecule () const
{
Molecule mol;
mol.add_molecule (Molecule (b, at));
}
}
- return mol;
+ return mol.create_scheme();
}
void
- column_arr[0]->extent (Y_AXIS) [d];
}
-void
-Tuplet_spanner::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Tuplet_spanner,after_line_breaking);
+SCM
+Tuplet_spanner::member_after_line_breaking ()
{
Link_array<Note_column> column_arr=
Pointer_group_interface__extract_elements (this, (Note_column*)0, "columns");
if (!column_arr.size ())
{
suicide ();
+ return SCM_UNDEFINED;
}
Direction d = directional_element (this).get ();
&& get_bound (RIGHT)->column_l () == beam_l->get_bound (RIGHT)->column_l ())
set_elt_property ("parallel-beam", SCM_BOOL_T);
}
+ return SCM_UNDEFINED;
}
*/
-MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Volta_spanner)
-Molecule
-Volta_spanner::do_brew_molecule () const
+
+GLUE_SCORE_ELEMENT(Volta_spanner,brew_molecule);
+SCM
+Volta_spanner::member_brew_molecule () const
{
Molecule mol;
= Pointer_group_interface__extract_elements (this, (Bar*)0, "bars");
if (!bar_arr.size ())
- return mol;
+ return mol.create_scheme();
bool no_vertical_start = false;
bool no_vertical_end = to_boolean (get_elt_property ("last-volta"));
mol.add_at_edge (X_AXIS, LEFT, num, - num.extent (X_AXIS).length ()
- staff_space);
- return mol;
+ return mol.create_scheme();
}
void
Volta_spanner::do_add_processing ()
{
-
Link_array<Bar> bar_arr
= Pointer_group_interface__extract_elements (this, (Bar*)0, "bars");
}
}
-void
-Volta_spanner::after_line_breaking ()
+GLUE_SCORE_ELEMENT(Volta_spanner,after_line_breaking);
+SCM
+Volta_spanner::member_after_line_breaking ()
{
Side_position_interface (this).add_staff_support ();
+ return SCM_UNDEFINED;
}
void
basicBarProperties = #`(
(break-align-symbol . Staff_bar)
- (molecule-callback . ,Bar::scheme_molecule)
+ (molecule-callback . ,Bar::brew_molecule)
(visibility-lambda . ,begin-of-line-invisible)
(breakable . #t)
-
+ (before-line-breaking-callback . ,Bar::before_line_breaking)
;;
;; Ross. page 151 lists other values, we opt for a leaner look
;;
)
basicBarNumberProperties = #`(
- (molecule-callback . ,Text_item::scheme_molecule)
+ (molecule-callback . ,Text_item::brew_molecule)
(breakable . #t)
(visibility-lambda . ,begin-of-line-visible)
)
basicBeamProperties = #`(
- (molecule-callback . ,Beam::scheme_molecule)
- (beam-thickness . 0.42) ; interline!
+ (molecule-callback . ,Beam::brew_molecule)
+ (beam-thickness . 0.42) ; interline
+ (before-line-breaking-callback . ,Beam::before_line_breaking)
+ (after-line-breaking-callback . ,Beam::after_line_breaking)
)
basicBreakAlignProperties = #`(
(breakable . #t)
- )
+ (before-line-breaking-callback . ,Break_align_item::before_line_breaking)
+)
basicBreathingSignProperties = #`(
(break-align-symbol . Breathing_sign)
+ (after-line-breaking-callback . ,Breathing_sign::after_line_breaking)
(breakable . #t )
- (molecule-callback . ,Breathing_sign::scheme_molecule)
+ (molecule-callback . ,Breathing_sign::brew_molecule)
(visibility-lambda . ,begin-of-line-invisible)
+
)
basicClefItemProperties = #`(
- (molecule-callback . ,Score_element::scheme_molecule)
+ (molecule-callback . ,Score_element::brew_molecule)
+ (before-line-breaking-callback . ,Clef_item::before_line_breaking)
(breakable . #t)
(break-align-symbol . Clef_item)
(visibility-lambda . ,begin-of-line-visible)
)
basicSlurProperties = #`(
- (molecule-callback . ,Slur::scheme_molecule)
+ (molecule-callback . ,Slur::brew_molecule)
+ (after-line-breaking-callback . ,Slur::after_line_breaking)
)
basicChordNameProperties = #`(
- (molecule-callback . ,Chord_name::scheme_molecule)
+ (molecule-callback . ,Chord_name::brew_molecule)
)
basicCollisionProperties = #`(
(axes 0 1)
+ (before-line-breaking-callback . ,Collision::before_line_breaking)
)
basicCrescendoProperties = #`(
- (molecule-callback . ,Crescendo::scheme_molecule)
+ (molecule-callback . ,Crescendo::brew_molecule)
)
basicDotsProperties = #`(
- (molecule-callback . ,Dots::scheme_molecule)
+ (molecule-callback . ,Dots::brew_molecule)
+ (after-line-breaking-callback . ,Dots::after_line_breaking)
(dot-count . 1)
)
basicDynamicLineSpannerProperties = #`(
)
basicDynamicTextProperties = # `(
(style . "dynamic")
- (molecule-callback . ,Text_item::scheme_molecule)
+ (molecule-callback . ,Text_item::brew_molecule)
(script-priority . 100)
(self-alignment-Y . 0)
)
(break-align-symbol . Left_edge_item)
(breakable . #t)
)
+ basicGraceAlignItemProperties = #`(
+ (axes . (0))
+ (before-line-breaking-callback . ,Grace_align_item::before_line_breaking)
+ )
+ basicHaraKiriVerticalGroupspannerProperties = #`(
+ (after-line-breaking-callback . ,Hara_kiri_group_spanner::after_line_breaking)
+ )
basicHyphenSpannerProperties = #`(
- (thickness . 1.0)
- (height . 0.4)
- (minimum-length . 0.5)
- (molecule-callback . ,Hyphen_spanner::scheme_molecule)
+ (thickness . 1.0)
+ (height . 0.4)
+ (minimum-length . 0.5)
+ (molecule-callback . ,Hyphen_spanner::brew_molecule)
)
basicKeyProperties = #`(
- (molecule-callback . ,Key_item::scheme_molecule)
+ (molecule-callback . ,Key_item::brew_molecule)
(break-align-symbol . Key_item)
(visibility-lambda . ,begin-of-line-visible)
(breakable . #t)
)
basicLocalKeyProperties = #`(
- (molecule-callback . ,Local_key_item::scheme_molecule)
+ (molecule-callback . ,Local_key_item::brew_molecule)
(left-padding . 0.2)
(right-padding . 0.4)
)
basicLyricExtenderProperties = #`(
- (molecule-callback . ,Lyric_extender::scheme_molecule)
+ (molecule-callback . ,Lyric_extender::brew_molecule)
)
basicLyricTextProperties = #`(
- (molecule-callback . ,Text_item::scheme_molecule)
+ (molecule-callback . ,Text_item::brew_molecule)
(non-rhythmic . #t)
)
basicMarkProperties = #`(
- (molecule-callback . ,Text_item::scheme_molecule)
+ (molecule-callback . ,Text_item::brew_molecule)
(breakable . #t)
(visibility-lambda . ,end-of-line-invisible)
)
basicMultiMeasureRestProperties = #`(
- (molecule-callback . ,Multi_measure_rest::scheme_molecule)
+ (molecule-callback . ,Multi_measure_rest::brew_molecule)
(staff-position . 0)
+ (after-line-breaking-callback . ,Multi_measure_rest::after_line_breaking)
)
basicNoteColumnProperties = #`(
(axes 0 1)
)
basicNoteHeadProperties = #`(
- (molecule-callback . ,Note_head::scheme_molecule)
+ (molecule-callback . ,Note_head::brew_molecule)
)
basicOctavateEightProperties = #`(
(self-alignment-X . 0)
(text . "8")
(visibility-lambda . ,begin-of-line-visible)
- (molecule-callback . ,Text_item::scheme_molecule)
+ (molecule-callback . ,Text_item::brew_molecule)
(style . "italic")
)
basicPedalProperties = #`(
- (molecule-callback . ,Text_item::scheme_molecule)
+ (molecule-callback . ,Text_item::brew_molecule)
(style . "italic")
(no-spacing-rods . #t)
(self-alignment-X . 0)
)
basicTextProperties = #`( )
basicRestProperties = #`(
- (molecule-callback . ,Rest::scheme_molecule)
+ (molecule-callback . ,Rest::brew_molecule)
)
basicRestCollisionProperties = #`(
)
basicScriptProperties = #`(
- (molecule-callback . ,Script::scheme_molecule)
+ (molecule-callback . ,Script::brew_molecule)
)
basicSlurProperties = #`(
- (molecule-callback . ,Slur::scheme_molecule)
+ (molecule-callback . ,Slur::brew_molecule)
+ (after-line-breaking-callback . ,Rest::after_line_breaking)
+ )
+ basicSpanBarProperties = #`(
+ (break-align-symbol . Staff_bar)
+ (molecule-callback . ,Bar::brew_molecule)
+ (visibility-lambda . ,begin-of-line-invisible)
+ (breakable . #t)
+ (before-line-breaking-callback . ,Span_bar::before_line_breaking)
+ (after-line-breaking-callback . ,Span_bar::after_line_breaking)
+
+ ;; ugh duplication!
+
+ ;;
+ ;; Ross. page 151 lists other values, we opt for a leaner look
+ ;;
+ (kern . 3.0)
+ (thin-kern . 3.0)
+ (hair-thickness . 1.6)
+ (thick-thickness . 6.0)
+
)
basicSustainPedalProperties = #`(
(no-spacing-rods . #t)
- (molecule-callback . ,Sustain_pedal::scheme_molecule)
+ (molecule-callback . ,Sustain_pedal::brew_molecule)
(self-alignment-X . 0)
)
basicSystemStartDelimiterProperties = #`(
- (molecule-callback . ,System_start_delimiter::scheme_molecule)
+ (molecule-callback . ,System_start_delimiter::brew_molecule)
+ (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking)
(collapse-height . 1.0)
(thickness . 1.6)
(arch-height . 1.5)
(bracket-width . 2.0)
)
basicStemProperties = #`(
- (molecule-callback . ,Stem::scheme_molecule)
+ (before-line-breaking-callback . ,Stem::before_line_breaking)
+ (molecule-callback . ,Stem::brew_molecule)
)
staffSymbolBasicProperties = #`(
- (molecule-callback . ,Staff_symbol::scheme_molecule)
+ (molecule-callback . ,Staff_symbol::brew_molecule)
(staff-space . 1.0 )
(line-count . 5 )
)
basicTextScriptProperties = #`(
- (molecule-callback . ,Text_item::scheme_molecule)
+ (molecule-callback . ,Text_item::brew_molecule)
(no-spacing-rods . #t)
)
basicTimeSignatureProperties = #`(
- (molecule-callback . ,Time_signature::scheme_molecule)
+ (molecule-callback . ,Time_signature::brew_molecule)
(break-align-symbol . Time_signature)
(visibility-lambda . ,all-visible)
(breakable . #t)
)
basicTieProperties = #`(
- (molecule-callback . ,Tie::scheme_molecule)
+ (molecule-callback . ,Tie::brew_molecule)
+ (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking)
)
basicTieColumnProperties = #`(
-
+ (after-line-breaking-callback .,Tie_engraver::after_line_breaking)
)
basicTupletSpannerProperties = #`(
(number-gap . 2.0)
- (thick . 1.0)
- (molecule-callback . ,Tuplet_spanner::scheme_molecule)
+ (thick . 1.0)
+ (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking)
+ (molecule-callback . ,Tuplet_spanner::brew_molecule)
)
basicStemTremoloProperties = #`(
- (molecule-callback . ,Stem_tremolo::scheme_molecule)
+ (molecule-callback . ,Stem_tremolo::brew_molecule)
(beam-width . 4.0) ; interline!
(beam-thickness . 0.42) ; interline!
)
)
basicInstrumentNameProperties = #`(
(breakable . #t)
- (molecule-callback . ,Text_item::scheme_molecule)
+ (molecule-callback . ,Text_item::brew_molecule)
(break-align-symbol . Instrument_name)
(visibility-lambda . ,begin-of-line-visible)
)
(axes 1)
)
basicVoltaSpannerProperties = #`(
- (molecule-callback . ,Volta_spanner::scheme_molecule)
+ (molecule-callback . ,Volta_spanner::brew_molecule)
+ (after-line-breaking-callback . ,Volta_spanner::after_line_breaking)
)
\accepts "Staff";
+
+% JUNKME
%part-paper.ly
\paper {
\translator { \OrchestralPartStaffContext }
- \translator { \ScoreContext skipBars = 1; }
- % for simple testing only!
-% castingalgorithm = \Wordwrap; % lots faster on my 486 -- jcn
+ \translator { \ScoreContext skipBars = ##t; }
}
Begin3
Title: LilyPond
-Version: 1.3.61
-Entered-date: 18JUN00
+Version: 1.3.62
+Entered-date: 21JUN00
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.61.tar.gz
+ 1000k lilypond-1.3.62.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.3.61.tar.gz
+ 1000k lilypond-1.3.62.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.3.61
+Version: 1.3.62
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.61.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.62.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
# Icon: lilypond-icon.gif
.. simple_serif(z1r, z1l, 90) .. z2l{down} -- cycle;
enddef;
-fet_beginchar("Right paranthesis", ")", "rightparen")
+fet_beginchar("Right parenthesis", ")", "rightparen")
draw_paren;
fet_endchar;
-fet_beginchar("Left paranthesis", "(", "leftparen")
+fet_beginchar("Left parenthesis", "(", "leftparen")
draw_paren;
currentpicture := currentpicture xscaled -1;
set_char_box(charwd, charbp, chardp, charht);
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-06-21 16:48+0200\n"
+"POT-Creation-Date: 2000-06-09 02:01+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "warning: "
msgstr ""
-#: dstream.cc:187
+#: dstream.cc:184
msgid "not enough fields in Dstream init"
msgstr ""
msgid "unterminated (de)crescendo"
msgstr ""
-#: extender-engraver.cc:97
+#: extender-engraver.cc:96
msgid "unterminated extender"
msgstr ""
-#: extender-engraver.cc:109
+#: extender-engraver.cc:108
msgid "Nothing to connect extender to on the left. Ignoring extender request."
msgstr ""
msgid "Unattached grace notes. Attaching to last musical column."
msgstr ""
-#: hyphen-engraver.cc:91
+#: hyphen-engraver.cc:59
msgid "unterminated hyphen"
msgstr ""
-#: hyphen-engraver.cc:103
+#: hyphen-engraver.cc:71
msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request."
msgstr ""
-#: identifier.cc:47
+#: identifier.cc:44
#, c-format
msgid "wrong identifier type, expected: `%s'"
msgstr ""
msgid "can't find file: `%s'"
msgstr ""
-#: key-engraver.cc:92 key-performer.cc:54
+#: key-def.cc:31
+msgid "No key name, assuming `C'"
+msgstr ""
+
+#: key-def.cc:92
+msgid "Don't know how handle empty keys"
+msgstr ""
+
+#: key-engraver.cc:74 key-performer.cc:65
msgid "FIXME: key change merge"
msgstr ""
msgid "(load path: `%s')"
msgstr ""
-#: line-of-score.cc:86
+#: line-of-score.cc:90
#, c-format
msgid "Element count %d."
msgstr ""
-#: line-of-score.cc:203 paper-score.cc:70
+#: line-of-score.cc:207 paper-score.cc:70
#, c-format
msgid "Element count %d "
msgstr ""
-#: line-of-score.cc:217
+#: line-of-score.cc:221
msgid "Calculating column positions..."
msgstr ""
+#: local-key-engraver.cc:82
+msgid "out of tune:"
+msgstr ""
+
+#: local-key-engraver.cc:83 time-signature-engraver.cc:29
+#: translator-group.cc:416 translator-group.cc:425
+#, c-format
+msgid "can't find: `%s'"
+msgstr ""
+
#: lookup.cc:58
msgid "Aborting"
msgstr ""
msgid "no such instrument: `%s'"
msgstr ""
-#: midi-item.cc:366
+#: midi-item.cc:365
#, c-format
msgid "unconventional key: flats: %d, sharps: %d"
msgstr ""
-#: midi-item.cc:413
+#: midi-item.cc:410
msgid "silly duration"
msgstr ""
-#: midi-item.cc:426
+#: midi-item.cc:423
msgid "silly pitch"
msgstr ""
msgid "Error syncing file (disk full?)"
msgstr ""
-#: music-output-def.cc:50
+#: music-output-def.cc:57
msgid "Interpretation context with empty type"
msgstr ""
-#: music-output-def.cc:77
+#: music-output-def.cc:87
#, c-format
msgid "can't find `%s' context"
msgstr ""
msgid "Transposition by %s makes accidental larger than two"
msgstr ""
-#: my-lily-lexer.cc:118
+#: my-lily-lexer.cc:129
#, c-format
msgid "Identifier name is a keyword: `%s'"
msgstr ""
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:148
#, c-format
msgid "error at EOF: %s"
msgstr ""
msgid "Braces don't match"
msgstr ""
-#: paper-def.cc:85
+#: paper-def.cc:70
+#, c-format
+msgid "unknown paper variable: `%s'"
+msgstr ""
+
+#: paper-def.cc:74
msgid "not a real variable"
msgstr ""
-#: paper-def.cc:174
+#: paper-def.cc:165
#, c-format
msgid "paper output to %s..."
msgstr ""
-#: mudela-stream.cc:93 paper-outputter.cc:91 performance.cc:95
+#: mudela-stream.cc:93 paper-outputter.cc:92 performance.cc:95
msgid ", at "
msgstr ""
msgid "lost in time:"
msgstr ""
-#: time-signature-engraver.cc:29 translator-group.cc:417
-#: translator-group.cc:426
-#, c-format
-msgid "can't find: `%s'"
-msgstr ""
-
#: timing-translator.cc:36
msgid "conflicting timing request"
msgstr ""
msgid "unknown translator: `%s'"
msgstr ""
-#: translator-group.cc:80 translator-group.cc:93
+#: translator-group.cc:81 translator-group.cc:94
msgid "Program has no such type"
msgstr ""
-#: translator-group.cc:84 translator-group.cc:99
+#: translator-group.cc:85 translator-group.cc:100
#, c-format
msgid "Already contains: `%s'"
msgstr ""
-#: translator-group.cc:211
+#: translator-group.cc:210
#, c-format
msgid "can't find or create `%s' called `%s'"
msgstr ""
-#: translator-group.cc:323
+#: translator-group.cc:322
#, c-format
msgid "can't find or create: `%s'"
msgstr ""
msgid "Oldest supported input version: %s"
msgstr ""
-#: parser.yy:418
+#: parser.yy:427
msgid "Need a translator group for a context"
msgstr ""
-#: parser.yy:433
+#: parser.yy:448
msgid "Wrong type for property value"
msgstr ""
-#: parser.yy:607
+#: parser.yy:694
msgid "More alternatives than repeats. Junking excess alternatives."
msgstr ""
-#: parser.yy:652
+#: parser.yy:739
msgid "Second argument must be a symbol"
msgstr ""
-#: parser.yy:657
+#: parser.yy:744
msgid "First argument must be a procedure taking 1 argument"
msgstr ""
-#: parser.yy:957
-msgid "Expecting string as script definition"
-msgstr ""
-
-#: parser.yy:967
+#: parser.yy:1069
msgid "Can't specify direction for this request"
msgstr ""
-#: parser.yy:1059
+#: parser.yy:1170
#, c-format
msgid "Expecting %d arguments"
msgstr ""
-#: parser.yy:1075
-msgid "Must have 2 arguments for duration"
-msgstr ""
-
-#: parser.yy:1082 parser.yy:1090 parser.yy:1331
+#: parser.yy:1193 parser.yy:1201 parser.yy:1443
msgid "Have to be in Lyric mode for lyrics"
msgstr ""
-#: parser.yy:1231 parser.yy:1251
+#: parser.yy:1342 parser.yy:1362
#, c-format
msgid "not a duration: %d"
msgstr ""
-#: parser.yy:1260
+#: parser.yy:1371
msgid "Have to be in Note mode for notes"
msgstr ""
-#: parser.yy:1347
+#: parser.yy:1459
msgid "Have to be in Chord mode for chords"
msgstr ""
-#: parser.yy:1508 parser.yy:1526
-msgid "need integer number arg"
-msgstr ""
-
-#: parser.yy:1512
-msgid "Must be positive integer"
-msgstr ""
-
#: lexer.ll:158
msgid "EOF found inside a comment"
msgstr ""
msgid "\\maininput disallowed outside init files"
msgstr ""
-#: lexer.ll:196
+#: lexer.ll:202
#, c-format
-msgid "wrong or undefined identifier: `%s'"
+msgid "undefined identifier: `%s'"
msgstr ""
#. backup rule
-#: lexer.ll:201
+#: lexer.ll:207
msgid "Missing end quote"
msgstr ""
#. backup rule
-#: lexer.ll:223 lexer.ll:227
+#: lexer.ll:229 lexer.ll:233
msgid "white expected"
msgstr ""
-#: lexer.ll:235
+#: lexer.ll:241
msgid "Can't evaluate Scheme in safe mode"
msgstr ""
-#: lexer.ll:431
+#: lexer.ll:436
#, c-format
msgid "invalid character: `%c'"
msgstr ""
-#: lexer.ll:503
+#: lexer.ll:494
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr ""
-#: lexer.ll:589
+#: lexer.ll:580
#, c-format
msgid "incorrect mudela version: %s (%s, %s)"
msgstr ""
# nl.po -- GNU LilyPond's dutch language file
-# Copyright (C) 1998, 1999, 2000 Jan Nieuwenhuizen <janneke@gnu.org>, Han-Wen Nienhuys <hanwen@cs.uu.nl>.
-# Jan Nieuwenhuizen <janneke@gnu.org>, 1998.
-# Han-Wen Nienhuys <hanwen@cs.uu.nl>, 1998.
-#
-# Don't change the format of the first three lines,
-# the TP robot wants them like this (I hope).
-# Of course, Han-Wen <hanwen@cs.uu.nl> also was FIRST AUTHOR.
+# Jan Nieuwenhuizen <janneke@gnu.org>
+# Han-Wen Nienhuys <hanwen@cs.uu.nl>, 1998, 1999, 2000.
#
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 1.3.59\n"
-"POT-Creation-Date: 2000-06-21 16:48+0200\n"
-"PO-Revision-Date: 2000-06-09 02:23+0200\n"
-"Last-Translator: Jan Nieuwenhuizen <janneke@gnu.org>\n"
-"Language-Team: Dutch <nl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
+"POT-Creation-Date: 2000-06-09 02:01+0200\n"
+"Content-Type: text/plain; charset=\n"
"Date: 1998-05-26 11:26:28+0200\n"
"From: <janneke@gnu.org>\n"
"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po "
msgid "warning: "
msgstr "waarschuwing: "
-#: dstream.cc:187
+#: dstream.cc:184
msgid "not enough fields in Dstream init"
msgstr "onvoldoende velden in Dstream init"
msgstr "rare verticale waardestreep verplaatsing"
#: break-align-item.cc:87
-#, c-format
msgid "unknown spacing pair `%s', `%s'"
msgstr "onbekend ruimte paar `%s', `%s'"
msgid "unterminated (de)crescendo"
msgstr "onbeëindigd (de)crescendo"
-#: extender-engraver.cc:97
+#: extender-engraver.cc:96
msgid "unterminated extender"
msgstr "onbeëindigde extender"
-#: extender-engraver.cc:109
+#: extender-engraver.cc:108
msgid "Nothing to connect extender to on the left. Ignoring extender request."
msgstr ""
"Niets om extender aan linkerkant aan vast te maken. Negeer extender verzoek."
msgid "Unattached grace notes. Attaching to last musical column."
msgstr "Losse grace noten. Maak ze vast aan vorige muziekale kolom."
-#: hyphen-engraver.cc:91
+#: hyphen-engraver.cc:59
msgid "unterminated hyphen"
msgstr "onafgesloten waardestreep"
-#: hyphen-engraver.cc:103
+#: hyphen-engraver.cc:71
msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request."
msgstr ""
"Niets om streepje aan linkerkant aan vast te maken. Negeer streepje verzoek."
-#: identifier.cc:47
+#: identifier.cc:44
#, c-format
msgid "wrong identifier type, expected: `%s'"
-msgstr "verkeerd type identifier, verwachtte: `%s'"
+msgstr "Verkeerd type identifier: "
#: includable-lexer.cc:47 lily-guile.cc:121 lily-guile.cc:144
#: midi-score-parser.cc:24 scores.cc:108 scores.cc:114
msgid "can't find file: `%s'"
msgstr "kan bestand niet vinden: `%s'"
-#: key-engraver.cc:92 key-performer.cc:54
+#: key-def.cc:31
+msgid "No key name, assuming `C'"
+msgstr "Geen toonsoort, ga uit van `C'"
+
+#: key-def.cc:92
+msgid "Don't know how handle empty keys"
+msgstr "Weet niet hoe lege toonsoorten te behandelen"
+
+#: key-engraver.cc:74 key-performer.cc:65
msgid "FIXME: key change merge"
msgstr "MAAKME: toonsoort sleutel samenvoeging"
msgid "(load path: `%s')"
msgstr "(zoekpad: `%s')"
-#: line-of-score.cc:86
+#: line-of-score.cc:90
#, c-format
msgid "Element count %d."
msgstr "Aantal elementen: %d."
-#: line-of-score.cc:203 paper-score.cc:70
+#: line-of-score.cc:207 paper-score.cc:70
#, c-format
msgid "Element count %d "
msgstr "Aantal elementen: %d."
-#: line-of-score.cc:217
+#: line-of-score.cc:221
msgid "Calculating column positions..."
msgstr "Berekenen van kolomposities..."
+#: local-key-engraver.cc:82
+msgid "out of tune:"
+msgstr "vals:"
+
+#: local-key-engraver.cc:83 time-signature-engraver.cc:29
+#: translator-group.cc:416 translator-group.cc:425
+#, c-format
+msgid "can't find: `%s'"
+msgstr "kan niet vinden: `%s'"
+
#: lookup.cc:58
msgid "Aborting"
msgstr "Breek af"
msgid "no such instrument: `%s'"
msgstr "geen dergelijk instrument: `%s'"
-#: midi-item.cc:366
+#: midi-item.cc:365
#, c-format
msgid "unconventional key: flats: %d, sharps: %d"
msgstr "vreemde toonsoort: %d mollen, %d kruizen"
-#: midi-item.cc:413
+#: midi-item.cc:410
msgid "silly duration"
msgstr "rare duur"
-#: midi-item.cc:426
+#: midi-item.cc:423
msgid "silly pitch"
msgstr "rare toonhoogte"
msgid "Error syncing file (disk full?)"
msgstr "Fout by synchroniseren van bestand (disk vol?)"
-#: music-output-def.cc:50
+#: music-output-def.cc:57
msgid "Interpretation context with empty type"
msgstr "Vertolk context met leeg type"
-#: music-output-def.cc:77
+#: music-output-def.cc:87
#, c-format
msgid "can't find `%s' context"
msgstr "kan `%s' context niet vinden"
msgid "Transposition by %s makes accidental larger than two"
msgstr "Transponering van %s geeft tripel kruizen/mollen"
-#: my-lily-lexer.cc:118
+#: my-lily-lexer.cc:129
#, c-format
msgid "Identifier name is a keyword: `%s'"
msgstr "Identifier naam is een sleutelwoord: `%s'"
-#: my-lily-lexer.cc:137
+#: my-lily-lexer.cc:148
#, c-format
msgid "error at EOF: %s"
msgstr "fout bij EOF: %s"
msgid "Braces don't match"
msgstr "Haakjes paren niet"
-#: paper-def.cc:85
+#: paper-def.cc:70
+#, c-format
+msgid "unknown paper variable: `%s'"
+msgstr "onbekende papier veranderlijke: `%s'"
+
+#: paper-def.cc:74
msgid "not a real variable"
msgstr "niet een reële veranderlijke"
-#: paper-def.cc:174
+#: paper-def.cc:165
#, c-format
msgid "paper output to %s..."
msgstr "papier uitvoer naar %s..."
-#: mudela-stream.cc:93 paper-outputter.cc:91 performance.cc:95
+#: mudela-stream.cc:93 paper-outputter.cc:92 performance.cc:95
msgid ", at "
msgstr ", bij "
#: tfm.cc:70
#, c-format
msgid "can't find ascii character: `%d'"
-msgstr "kan ascii teken niet vinden: `%d'"
+msgstr "kan teken niet vinden: `%s'"
#: tie-engraver.cc:195 tie-performer.cc:109
msgid "No ties were created!"
msgid "lost in time:"
msgstr "verdwaald in de tijd:"
-#: time-signature-engraver.cc:29 translator-group.cc:417
-#: translator-group.cc:426
-#, c-format
-msgid "can't find: `%s'"
-msgstr "kan niet vinden: `%s'"
-
#: timing-translator.cc:36
msgid "conflicting timing request"
msgstr "strijdig timing verzoek"
msgid "unknown translator: `%s'"
msgstr "onbekende papier varanderlijke: `%s'"
-#: translator-group.cc:80 translator-group.cc:93
+#: translator-group.cc:81 translator-group.cc:94
msgid "Program has no such type"
msgstr "Programma heeft geen dergelijk type"
-#: translator-group.cc:84 translator-group.cc:99
+#: translator-group.cc:85 translator-group.cc:100
#, c-format
msgid "Already contains: `%s'"
msgstr "Bevat reeds: `%s'"
-#: translator-group.cc:211
+#: translator-group.cc:210
#, c-format
msgid "can't find or create `%s' called `%s'"
msgstr "kan niet vinden of scheppen `%s' genaamd `%s'"
-#: translator-group.cc:323
+#: translator-group.cc:322
#, c-format
msgid "can't find or create: `%s'"
msgstr "kan niet vinden of scheppen: `%s'"
msgid "Oldest supported input version: %s"
msgstr "Oudst ondersteunde invoerversie: %s"
-#: parser.yy:418
+#: parser.yy:427
msgid "Need a translator group for a context"
msgstr "Heb een translator groep nodig voor een context"
-#: parser.yy:433
+#: parser.yy:448
msgid "Wrong type for property value"
msgstr "Verkeerd type voor property waarde"
-#: parser.yy:607
+#: parser.yy:694
msgid "More alternatives than repeats. Junking excess alternatives."
msgstr ""
"Meer alternatieven dan herhalingen. Schroot overvloedige alternatieven."
-#: parser.yy:652
+#: parser.yy:739
msgid "Second argument must be a symbol"
msgstr "Tweede argument moet een symbool zijn"
-#: parser.yy:657
+#: parser.yy:744
msgid "First argument must be a procedure taking 1 argument"
msgstr "Eerste argument moet een procedure zijn met 1 argument"
-#: parser.yy:957
-msgid "Expecting string as script definition"
-msgstr "Verwacht string voor script definitie"
-
-#: parser.yy:967
+#: parser.yy:1069
msgid "Can't specify direction for this request"
msgstr "Kan richting voor dit verzoek niet specificeren"
-#: parser.yy:1059
+#: parser.yy:1170
#, c-format
msgid "Expecting %d arguments"
msgstr "Verwacht %d argumenten"
-#: parser.yy:1075
-msgid "Must have 2 arguments for duration"
-msgstr "Moet 2 argumenten hebben voor duur"
-
-#: parser.yy:1082 parser.yy:1090 parser.yy:1331
+#: parser.yy:1193 parser.yy:1201 parser.yy:1443
msgid "Have to be in Lyric mode for lyrics"
msgstr "Moet in Lyric modus zijn voor liedteksten"
-#: parser.yy:1231 parser.yy:1251
+#: parser.yy:1342 parser.yy:1362
#, c-format
msgid "not a duration: %d"
msgstr "geen duur: %d"
-#: parser.yy:1260
+#: parser.yy:1371
msgid "Have to be in Note mode for notes"
msgstr "Moet in Note modus zijn voor noten"
-#: parser.yy:1347
+#: parser.yy:1459
msgid "Have to be in Chord mode for chords"
msgstr "Moet in Chord modus zijn voor accoorden"
-#: parser.yy:1508 parser.yy:1526
-msgid "need integer number arg"
-msgstr "heb integer getal arg nogig"
-
-#: parser.yy:1512
-msgid "Must be positive integer"
-msgstr "Moet positieve integer zijn"
-
#: lexer.ll:158
msgid "EOF found inside a comment"
msgstr "EOF gevonden in een kommentaar"
msgid "\\maininput disallowed outside init files"
msgstr "\\maininput niet toegestaan buiten init bestanden"
-#: lexer.ll:196
-msgid "wrong or undefined identifier: `%s'"
-msgstr "verkeerde of ongedefiniëerde identifier: `%s'"
+#: lexer.ll:202
+#, c-format
+msgid "undefined identifier: `%s'"
+msgstr "ongedefiniëerde idendifier: `%s'"
#. backup rule
-#: lexer.ll:201
+#: lexer.ll:207
msgid "Missing end quote"
msgstr "Aanhalingsteken sluiten mist"
#. backup rule
-#: lexer.ll:223 lexer.ll:227
+#: lexer.ll:229 lexer.ll:233
msgid "white expected"
msgstr "wit verwacht"
-#: lexer.ll:235
+#: lexer.ll:241
msgid "Can't evaluate Scheme in safe mode"
msgstr "Kan Scheme niet evalueren in veilige modus"
-#: lexer.ll:431
+#: lexer.ll:436
#, c-format
msgid "invalid character: `%c'"
msgstr "ongeldig teken: `%c'"
-#: lexer.ll:503
+#: lexer.ll:494
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr "onbekende ontsnapte string: `\\%s'"
-#: lexer.ll:589
+#: lexer.ll:580
#, c-format
msgid "incorrect mudela version: %s (%s, %s)"
msgstr "verkeerde mudela versie: %s (%s, %s)"
msgstr "% Automatisch gegenereerd"
#: mudela-stream.cc:97
+#, c-format
msgid "% from input file: "
msgstr "% van invoerbestand: "
+#~ msgid "Don't have that many octaves (%s)"
+#~ msgstr "Zoveel oktaven heb ik niet (%s)"
+
+#~ msgid "underdone accidentals (%s)"
+#~ msgstr "onderdreven aantal kruizen/mollen (%s)"
+
+#~ msgid "overdone accidentals (%s)"
+#~ msgstr "overdreven aantal kruizen/mollen (%s)"
+
+#~ msgid "score does not have any columns"
+#~ msgstr "partituur heeft geen enkele kolom"
+
+#~ msgid "can't find start of chord tremolo"
+#~ msgstr "kan start van akkoordtremolo niet vinden"
+
+#~ msgid "already have a chord tremolo"
+#~ msgstr "heb al een akkoordtremolo"
+
+#~ msgid "redeclaration of `\\%s'"
+#~ msgstr "`herdeclaratie van `\\%s'"
+
+#~ msgid "Must set spring between differing columns"
+#~ msgstr "Moet veertje zetten tussen verschillende kolommen"
+
+#~ msgid "Will ignore \\relative for transposed music"
+#~ msgstr "Zal \\relative negeren voor getransponeerde muziek"
+
+#~ msgid "More than one music block"
+#~ msgstr "Meer dan een muziekblok"
+
+#~ msgid "can't put stem tremolo on tuplet"
+#~ msgstr "kan stoktremolo niet op n-ool zetten"
m = re.match ('^([^ \t]*) *(.*)$', a) # seperate clef info
if m:
__main__.global_key =compute_key (m.group(1))# ugh.
- voices_append ('\\key %s \\major;' % lily_key(m.group(1)))
+ voices_append ('\\key %s;' % lily_key(m.group(1)))
check_clef(m.group(2))
else:
__main__.global_key =compute_key (a)# ugh.