From 3868db9c247f5bdbbe23361ea951f1e95aa75925 Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 21:45:54 +0000 Subject: [PATCH] lilypond-1.1.19 --- NEWS | 30 +++++ init/params.ly | 16 ++- input/bugs/rediculous-dim.ly | 8 ++ lily/beam.cc | 176 ++++++++++++++++++--------- lily/g-staff-side.cc | 3 + lily/include/mark-engraver.hh | 7 +- lily/mark-engraver.cc | 75 ++++++++---- lily/multi-measure-rest.cc | 19 ++- mf/feta-eindelijk.mf | 14 ++- mutopia/J.S.Bach/viola-part.ly | 25 ++++ mutopia/J.S.Bach/violino-i.ly | 6 +- mutopia/J.S.Bach/violino-part.ly | 25 ++++ mutopia/J.S.Bach/violoncello-part.ly | 25 ++++ mutopia/J.S.Bach/wtk1-fugue2.ly | 38 ++++-- scm/lily.scm | 3 + 15 files changed, 362 insertions(+), 108 deletions(-) create mode 100644 input/bugs/rediculous-dim.ly create mode 100644 mutopia/J.S.Bach/viola-part.ly create mode 100644 mutopia/J.S.Bach/violino-part.ly create mode 100644 mutopia/J.S.Bach/violoncello-part.ly diff --git a/NEWS b/NEWS index 6b8d0fb119..ed3b41e22c 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,33 @@ +pl 18.jcn5 + - bf: beamtrend + - bf: vv-duet + +pl 18.mb1 + - \mark now works, using G_staff_side_item. + - Improved layout of multi-bar rests, including a new + font symbol. + +pl 18.jcn4 + - beam length adjustments + - ugly beamtrend fix: input/test/beam-trend.ly + +pl 18.jcn3 + - bf: (beamed) forced stem shorten + - bf: broken slurs and ties; minimal slur/tie length setting ignored + - bf: separators on cygwin + +pl 18.jcn2 + - bf: stem-length algorithm + - bf: beam direction algorithm + - bf's: wtk1-fugue2.ly + +pl 18.jcn1 + - stepmake update + - small fixes: spacing.ly, wtk1-fugue2-ly, violino-viola duet. + +******* +pl 18 (jan 4 '99) + pl 17.jbr2 - Documentation/README-W32: Brought my stuff up to date - Documentation/ntweb: updated for realease diff --git a/init/params.ly b/init/params.ly index 449c3c7aa5..35ab7533d4 100644 --- a/init/params.ly +++ b/init/params.ly @@ -38,7 +38,13 @@ forced_stem_shorten = 1.0 * \interline; % % enum Dir_algorithm { DOWN=-1, UP=1, MAJORITY=2, MEAN, MEDIAN }; % -beam_dir_algorithm = 2.0; +DOWN = -1.0; +UP = 1.0; +MAJORITY = 2.0; +MEAN = 3.0; +MEDIAN = 4.0; +% [Ross]: majority +beam_dir_algorithm = \MAJORITY; % % @@ -48,10 +54,10 @@ beam_dir_algorithm = 2.0; % beam_*2 : multiplicity >= beam_multiple_break % beam_multiple_break = 3.0; -beam_minimum_stem1 = 1.5 * \interline; -beam_minimum_stem2 = 1.0 * \interline; -beam_ideal_stem1 = 2.0 * \interline; -beam_ideal_stem2 = 1.5 * \interline; +beam_minimum_stem1 = 0.75 * \interline; +beam_ideal_stem1 = 1.75 * \interline; +beam_minimum_stem2 = 0.75 * \interline; +beam_ideal_stem2 = 1.25 * \interline; % beam_slope_damp_correct_factor = 2.0; beam_slope_damp_correct_factor = 0.0; diff --git a/input/bugs/rediculous-dim.ly b/input/bugs/rediculous-dim.ly new file mode 100644 index 0000000000..1110e944ac --- /dev/null +++ b/input/bugs/rediculous-dim.ly @@ -0,0 +1,8 @@ +\score{ + \notes\relative c'' { + < + \property Voice.textstyle = "large" s4^"Moderato" + r4 + > + } +} diff --git a/lily/beam.cc b/lily/beam.cc index ec41c7a964..40648d8353 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -33,10 +33,6 @@ #include "paper-def.hh" #include "lookup.hh" #include "grouping.hh" -#include "stem-info.hh" - - - Beam::Beam () { @@ -117,7 +113,7 @@ Beam::do_post_processing () transparent_b_ = true; return ; } - solve_slope (); + calculate_slope (); set_stemlens (); } @@ -160,10 +156,17 @@ Beam::set_default_dir () } while (flip(&d) != DOWN); +#if 0 + /* + urg? consider [b''16 a]: will get stem down! + i'll leave this 'fix' commented-out in case something breaks. + jcn + */ do { if (!total[d]) count[d] = 1; } while (flip(&d) != DOWN); +#endif /* [Ross] states that the majority of the notes dictates the @@ -209,48 +212,30 @@ Beam::set_default_dir () /* See Documentation/tex/fonts.doc */ + void -Beam::solve_slope () +Beam::solve_slope (Array& sinfo) { /* should use minimum energy formulation (cf linespacing) */ - - assert (multiple_i_); - Array sinfo; + assert (sinfo.size () > 1); DOUT << "Beam::solve_slope: \n"; - for (int j=0; j mult_i_ = multiple_i_; - i->set_default_extents (); - if (i->invisible_b ()) - continue; + Real staffline_f = paper ()->rule_thickness (); + Real epsilon_f = staffline_f / 8; - Stem_info info (i); - sinfo.push (info); - } - if (! sinfo.size ()) - slope_f_ = left_y_ = 0; - else if (sinfo.size () == 1) + Real leftx = sinfo[0].x_; + Least_squares l; + for (int i=0; i < sinfo.size (); i++) { - slope_f_ = 0; - left_y_ = sinfo[0].idealy_f_; + sinfo[i].x_ -= leftx; + l.input.push (Offset (sinfo[i].x_, sinfo[i].idealy_f_)); } - else - { - Real leftx = sinfo[0].x_; - Least_squares l; - for (int i=0; i < sinfo.size (); i++) - { - sinfo[i].x_ -= leftx; - l.input.push (Offset (sinfo[i].x_, sinfo[i].idealy_f_)); - } - l.minimise (slope_f_, left_y_); - - } + // l.input[0].y () += left_y_; + l.input[0].y () += left_y_ / 2; + l.minimise (slope_f_, left_y_); solved_slope_f_ = dir_ * slope_f_; @@ -273,33 +258,32 @@ Beam::solve_slope () perhaps only if slope = 0 ? */ -// left_y_ = sinfo[0].minyf_; + if (abs (slope_f_) < epsilon_f) + left_y_ = (sinfo[0].idealy_f_ + sinfo.top ().idealy_f_) / 2; + else + /* + symmetrical, but results often in having stemlength = minimal + + left_y_ = sinfo[0].dir_ == dir_ ? sinfo[0].miny_f_ : sinfo[0].maxy_f_; - if (sinfo.size () >= 1) + what about + */ { - Real staffline_f = paper ()->rule_thickness (); - Real epsilon_f = staffline_f / 8; - if (abs (slope_f_) < epsilon_f) - left_y_ = (sinfo[0].idealy_f_ + sinfo.top ().idealy_f_) / 2; + Real dx = stems_.top ()->hpos_f () - stems_[0]->hpos_f (); + if (sinfo[0].dir_ == sinfo.top ().dir_) + left_y_ = sinfo[0].idealy_f_ >? sinfo.top ().idealy_f_ - slope_f_ * dx; + // knee else - /* - symmetrical, but results often in having stemlength = minimal - - left_y_ = sinfo[0].dir_ == dir_ ? sinfo[0].miny_f_ : sinfo[0].maxy_f_; - - what about - */ - { - Real dx = stems_.top ()->hpos_f () - stems_[0]->hpos_f (); - if (sinfo[0].dir_ == sinfo.top ().dir_) - left_y_ = sinfo[0].idealy_f_ >? sinfo.top ().idealy_f_ - slope_f_ * dx; - // knee - else - left_y_ = sinfo[0].idealy_f_; - } + left_y_ = sinfo[0].idealy_f_; } +} - // uh? +Real +Beam::check_stemlengths_f (Array& sinfo) +{ + /* + find shortest stem and adjust left_y accordingly + */ Real dy = 0.0; for (int i=0; i < sinfo.size (); i++) { @@ -309,7 +293,81 @@ Beam::solve_slope () if (my - y > dy) dy = my -y; } - left_y_ += dy; + return dy; +} + +void +Beam::calculate_slope () +{ + Real interline_f = paper ()->interline_f (); + Real staffline_f = paper ()->rule_thickness (); + Real epsilon_f = staffline_f / 8; + + assert (multiple_i_); + Array sinfo; + for (int i=0; i < stems_.size (); i++) + { + Stem *s = stems_[i]; + + s->mult_i_ = multiple_i_; + s->set_default_extents (); + if (s->invisible_b ()) + continue; + + Stem_info info (s); + sinfo.push (info); + } + + if (! sinfo.size ()) + slope_f_ = left_y_ = 0; + else if (sinfo.size () == 1) + { + slope_f_ = 0; + left_y_ = sinfo[0].idealy_f_; + } + else + { + Real y; + Real s; + Array local_sinfo; + local_sinfo = sinfo; + for (int i = 0; i < 5; i++) + { + y = left_y_; + solve_slope (sinfo); + Real dy = check_stemlengths_f (sinfo); + left_y_ += dy; + + // only consider recalculation if long stem adjustments + if (!i && (left_y_ - sinfo[0].idealy_f_ < 0.5 * interline_f)) + break; + + if (!i) + s = slope_f_; + // never allow slope to tilt the other way + else if (sign (slope_f_) != sign (s)) + { + left_y_ = 0; + slope_f_ = 0; + sinfo = local_sinfo; + Real dy = check_stemlengths_f (sinfo); + left_y_ += dy; + break; + } + // or become steeper + else if (abs (slope_f_) > abs (s)) + { + slope_f_ = s; + sinfo = local_sinfo; + Real dy = check_stemlengths_f (sinfo); + left_y_ += dy; + break; + } + if (abs (dy) < epsilon_f) + break; + } + } + left_y_ *= dir_; slope_f_ *= dir_; diff --git a/lily/g-staff-side.cc b/lily/g-staff-side.cc index 357f5854a3..9b166c6927 100644 --- a/lily/g-staff-side.cc +++ b/lily/g-staff-side.cc @@ -58,6 +58,9 @@ G_staff_side_item::do_substitute_dependency (Score_element*o, Score_element*n) void G_staff_side_item::do_post_processing () { + if (!support_l_arr_.size ()) + return ; + Dimension_cache *common = common_group (typecast_array (support_l_arr_, (Graphical_element*)0), Y_AXIS); diff --git a/lily/include/mark-engraver.hh b/lily/include/mark-engraver.hh index 4f37566fac..f498b34f5c 100644 --- a/lily/include/mark-engraver.hh +++ b/lily/include/mark-engraver.hh @@ -12,6 +12,9 @@ #include "engraver.hh" +class G_staff_side_item; +class G_text_item; + /** */ class Mark_engraver : public Engraver @@ -26,10 +29,12 @@ protected: virtual bool do_try_music (Music *req_l); virtual void do_process_requests (); virtual void do_pre_move_processing (); + virtual void acknowledge_element (Score_element_info); private: Mark_req * mark_req_l_; - Script* script_p_; + G_staff_side_item* staff_side_p_; + G_text_item* text_p_; }; #endif // MARK_ENGRAVER_HH diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc index d3c736e96b..891215abe5 100644 --- a/lily/mark-engraver.cc +++ b/lily/mark-engraver.cc @@ -13,14 +13,19 @@ #include "command-request.hh" #include "time-description.hh" #include "engraver-group.hh" - +#include "staff-sym.hh" +#include "g-text-item.hh" +#include "g-staff-side.hh" +#include "stem.hh" +#include "rhythmic-head.hh" ADD_THIS_TRANSLATOR (Mark_engraver); Mark_engraver::Mark_engraver () { mark_req_l_ = 0; - script_p_ = 0; + staff_side_p_ = 0; + text_p_ = 0; } bool @@ -37,47 +42,71 @@ Mark_engraver::do_try_music (Music* r_l) void Mark_engraver::do_process_requests () { - if (!mark_req_l_ || script_p_) + if (!mark_req_l_ || staff_side_p_) return; - script_p_ = new Script; - script_p_->breakable_b_ = true; + staff_side_p_ = new G_staff_side_item; - Text_def *td_p = new Text_def; + text_p_ = new G_text_item; - td_p->text_str_ = mark_req_l_->str_; - td_p->align_dir_ = CENTER; + text_p_->text_str_ = mark_req_l_->str_; + // text_p_->align_dir_ = CENTER; - td_p->style_str_ = td_p->text_str_.index_any_i ("0123456789") >= 0 + text_p_->style_str_ = text_p_->text_str_.index_any_i ("0123456789") >= 0 ? "mark" : "Large"; - script_p_->dir_ = LEFT; - script_p_->specs_p_ = td_p->clone (); - script_p_->postbreak_only_b_ = true; - - Scalar padding = get_property ("markScriptPadding", 0); - if (padding.length_i() && padding.isnum_b ()) + Scalar prop = get_property ("markdir", 0); + if (prop.isnum_b ()) { - script_p_->padding_f_ = Real(padding); + staff_side_p_->dir_ = (Direction) (int) prop; } - Scalar break_priority = get_property ("markBreakPriority", 0); - if (break_priority.length_i() && break_priority.isnum_b ()) + else { - script_p_->break_priority_i_ = int(break_priority); + staff_side_p_->dir_ = UP; } + staff_side_p_->set_victim(text_p_); - announce_element (Score_element_info (script_p_, mark_req_l_)); + // Scalar padding = get_property ("markScriptPadding", 0); + // if (padding.length_i() && padding.isnum_b ()) + // { + // script_p_->padding_f_ = Real(padding); + // } + // Scalar break_priority = get_property ("markBreakPriority", 0); + // if (break_priority.length_i() && break_priority.isnum_b ()) + // { + // staff_side_p_->break_priority_i_ = int(break_priority); + // } + + + announce_element (Score_element_info (text_p_, mark_req_l_)); + announce_element (Score_element_info (staff_side_p_, mark_req_l_)); } void Mark_engraver::do_pre_move_processing () { - if (script_p_) + if (staff_side_p_) { - typeset_element (script_p_); - script_p_ = 0; + Staff_symbol* s_l = get_staff_info().staff_sym_l_; + staff_side_p_->add_support (s_l); + typeset_element (text_p_); + typeset_element (staff_side_p_); + text_p_ = 0; + staff_side_p_ = 0; mark_req_l_ = 0; } } +void +Mark_engraver::acknowledge_element (Score_element_info i) +{ + if (staff_side_p_) + { + if (dynamic_cast (i.elem_l_) || + dynamic_cast (i.elem_l_)) + { + staff_side_p_->add_support (i.elem_l_); + } + } +} diff --git a/lily/multi-measure-rest.cc b/lily/multi-measure-rest.cc index a6144ffc0d..6bb3a5a6e4 100644 --- a/lily/multi-measure-rest.cc +++ b/lily/multi-measure-rest.cc @@ -15,7 +15,7 @@ #include "script.hh" #include "text-def.hh" #include "molecule.hh" - +#include "misc.hh" Multi_measure_rest::Multi_measure_rest () @@ -37,17 +37,28 @@ Multi_measure_rest::do_brew_molecule_p () const * make real multi-measure rest symbol: |---| * make two,four,eight-measure-rest symbols */ - - Atom s (lookup_l ()->rest (0, 0)); + Atom s; + if (measures_i_ == 1 || measures_i_ == 2 || measures_i_ == 4) + { + s = (lookup_l ()->rest (- intlog2(measures_i_), 0)); + } + else + { + s = (lookup_l ()->rest (-4, 0)); + } Molecule* mol_p = new Molecule ( Atom (s)); Real interline_f = paper ()->interline_f (); - mol_p->translate_axis (interline_f, Y_AXIS); + if (measures_i_ == 1) + { + mol_p->translate_axis (interline_f, Y_AXIS); + } if (measures_i_ > 1) { Text_def text; text.text_str_ = to_str (measures_i_); text.style_str_ = "number"; + text.align_dir_ = CENTER; Atom s = text.get_atom (paper (), UP); s.translate_axis (3.0 * interline_f, Y_AXIS); mol_p->add_atom (s); diff --git a/mf/feta-eindelijk.mf b/mf/feta-eindelijk.mf index f3c26b669b..e8b5d28f89 100644 --- a/mf/feta-eindelijk.mf +++ b/mf/feta-eindelijk.mf @@ -92,8 +92,10 @@ save breve_rest_y, breve_rest_x; breve_rest_y# = interline#; breve_rest_x# = 3/5 interline#; +multi_rest_x# = 2 interline#; +multi_rest_y# = 1/3 interline#; -define_pixels(breve_rest_y, breve_rest_x); +define_pixels(breve_rest_y, breve_rest_x, multi_rest_x, multi_rest_y); fet_beginchar("breve rest", "-1", "breverest"); set_char_box(0, breve_rest_x#, 0, breve_rest_y#); @@ -105,6 +107,16 @@ fet_beginchar("longa rest", "-2", "longarest"); draw_block ((0,-breve_rest_y), (breve_rest_x, breve_rest_y)); fet_endchar; +fet_beginchar("multi rest", "-4", "multirest"); + set_char_box(multi_rest_x#, multi_rest_x#, + breve_rest_y#, breve_rest_y#); + draw_block ((-multi_rest_x, -multi_rest_y), + (multi_rest_x, multi_rest_y)); + draw_block ((-multi_rest_x,-breve_rest_y), + (rthin-multi_rest_x, breve_rest_y)); + draw_block ((multi_rest_x-rthin,-breve_rest_y), + (multi_rest_x, breve_rest_y)); +fet_endchar; fet_beginchar("Quarter rest","2","quartrest"); save alpha; diff --git a/mutopia/J.S.Bach/viola-part.ly b/mutopia/J.S.Bach/viola-part.ly new file mode 100644 index 0000000000..a7fe1b4915 --- /dev/null +++ b/mutopia/J.S.Bach/viola-part.ly @@ -0,0 +1,25 @@ +\header{ +filename = "viola-part.ly"; +title = "Vier Duette"; +description = "Four duets for Violino and Violoncello (Viola)"; +opus = "BWV"; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "jcn"; +copyright = "Public Domain"; +} + +\include "global-i.ly" +\include "viola-i.ly" + +\score{ + \$viola_i_staff + \paper{ + \translator { \BarNumberingStaffContext } + } + \midi{ +%urg +% \tempo 4. = 69; + \tempo 4 . = 69; + } +} + diff --git a/mutopia/J.S.Bach/violino-i.ly b/mutopia/J.S.Bach/violino-i.ly index a29cb50867..f365d06a7b 100644 --- a/mutopia/J.S.Bach/violino-i.ly +++ b/mutopia/J.S.Bach/violino-i.ly @@ -1,7 +1,7 @@ \header{ filename = "violino-i.ly"; title = "Vier Duette"; -description = "For duets for Violino and Violoncello (Viola)"; +description = "Four duets for Violino and Violoncello (Viola)"; opus = "BWV"; composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; @@ -30,7 +30,9 @@ $violino_i = \notes\relative c'' { $violino_i_staff = \type Staff = violino < < - \notes\property Voice.textstyle = "large" s4^"Moderato" + %urg + % \notes\property Voice.textstyle = "large" s4^"Moderato" + % \notes {s4. \property Voice.textstyle = "large" s4^"Moderato"} \$violino_i > \$global_i diff --git a/mutopia/J.S.Bach/violino-part.ly b/mutopia/J.S.Bach/violino-part.ly new file mode 100644 index 0000000000..de5a179747 --- /dev/null +++ b/mutopia/J.S.Bach/violino-part.ly @@ -0,0 +1,25 @@ +\header{ +filename = "violino-part.ly"; +title = "Vier Duette"; +description = "Four duets for Violino and Violoncello (Viola)"; +opus = "BWV"; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "jcn"; +copyright = "Public Domain"; +} + +\include "global-i.ly" +\include "violino-i.ly" + +\score{ + \$violino_i_staff + \paper{ + \translator { \BarNumberingStaffContext } + } + \midi{ +%urg +% \tempo 4. = 69; + \tempo 4 . = 69; + } +} + diff --git a/mutopia/J.S.Bach/violoncello-part.ly b/mutopia/J.S.Bach/violoncello-part.ly new file mode 100644 index 0000000000..bf1d8f0232 --- /dev/null +++ b/mutopia/J.S.Bach/violoncello-part.ly @@ -0,0 +1,25 @@ +\header{ +filename = "violoncello-part.ly"; +title = "Vier Duette"; +description = "Four duets for Violino and Violoncello (Viola)"; +opus = "BWV"; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "jcn"; +copyright = "Public Domain"; +} + +\include "global-i.ly" +\include "violoncello-i.ly" + +\score{ + \$violoncello_i_staff + \paper{ + \translator { \BarNumberingStaffContext } + } + \midi{ +%urg +% \tempo 4. = 69; + \tempo 4 . = 69; + } +} + diff --git a/mutopia/J.S.Bach/wtk1-fugue2.ly b/mutopia/J.S.Bach/wtk1-fugue2.ly index 3c31452ff7..9aeb030879 100644 --- a/mutopia/J.S.Bach/wtk1-fugue2.ly +++ b/mutopia/J.S.Bach/wtk1-fugue2.ly @@ -18,13 +18,15 @@ \include "nederlands.ly" % for correct parsing of note names global = \notes { + \key c \minor; \time 4/4; - \keysignature bes es as; + \property Staff.timeSignatureStyle = "C" \skip 1*31; \bar "|."; | } -dux = \notes \relative c'' { +dux = \notes \relative c''{ + \voicetwo \clef violin; \property Voice.ydirection = "-1" @@ -74,8 +76,7 @@ dux = \notes \relative c'' { comes = \notes \relative c'' { - \stemup - + \voiceone r1 | r1 | r8 [g'16 fis] [g8 c,] [es g16 fis] [g8 a] | @@ -89,8 +90,8 @@ comes = \notes \relative c'' { %%10 [f f16 e] [f8 c8] d4 r8 d | [es8 es16 d] [es8 bes ] [c es16 d] [es8 f] | - \stemboth [bes, es16 d] [es8 f] [as,16 bes ] c4 [bes16 as ] | - [g16 es f g] [as bes c d] [es d c d] [es f g a] | + [bes, es16 d] [es8 f] [as,16 bes ] c4 [bes16 as ] | + \stemboth [g16 es f g] [as bes c d] [es d c d] [es f g a] | [bes f, g as] [bes c d e] [f es d es] [ f g a b] | %%15 \stemup [c8 b16 a] [g f! es d] [c8 es d c] | @@ -152,12 +153,15 @@ bassdux = \notes \relative c' { g4 r4 r16 [g a b] [c d es f] | [g f as g] [f es d c] [b8 c16 b] [c8 g] | [as c16 b] [c8 d] [g, c16 b] [c8 d] | - [f16 g] as4 [g16 f] es4 r8 es | - [d c g g] + [f,16 g] as4 [g16 f] es4 r8 es' | + [d c g' g,] %%30 + %urg + %using only \type Staff or \voiceone/two don't work anymore? + %moreover, the ties are not fooled by this anymore \type Staff < - { \stemup c2 ~ | c1 ~ | c1 } - { \stemdown c,2 ~ | c1 ~ | c1 } + {\voiceone c2 ~ | c1 ~ | c1 } + {\voicetwo c,2 ~ | c1 ~ | c1 } > } @@ -177,9 +181,17 @@ bassdux = \notes \relative c' { > \paper { - gourlay_maxmeasures =5.; -% castingalgorithm = \Wordwrap; - + gourlay_maxmeasures = 4.; + indent = 8.\mm; + textheight = 295.\mm; + + %hmm +% \translator { \BarNumberingScoreContext } +% \translator { \BarNumberingStaffContext } + \translator{ \OrchestralScoreContext } + } + \header{ + opus = "BWV 847"; } \midi { diff --git a/scm/lily.scm b/scm/lily.scm index 2b7c61bb46..44c2eb1bcb 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -78,6 +78,9 @@ (define (settypewriter s) (text "typewriter" s)) (define (setnumber s) (text "number" s)) (define (setbold s) (text "bold" s)) +(define (setlarge s) (text "large" s)) +(define (setLarge s) (text "Large" s)) +(define (setmark s) (text "mark" s)) (define (setfinger s) (text "finger" s)) (define (setitalic s) (text "italic" s)) (define (setnumber-1 s) (text "numberj" s)) -- 2.39.5