]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/chord-name.scm: remove new-chord-name-brew-molecule ; use
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 14 Sep 2003 13:55:30 +0000 (13:55 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 14 Sep 2003 13:55:30 +0000 (13:55 +0000)
ChordNames.SeparationItem #'padding for adjusting space after chords.

* lily/music-output-def.cc (LY_DEFINE):
new function ly:paper-lookup.

* lily/paper-def.cc: new function ly:paper-font; this function
replaces ly:get-font.

* lily/include/font-interface.hh (struct Font_interface): take
Paper_def iso. Grob for get_font().

21 files changed:
ChangeLog
lily/accidental.cc
lily/break-align-interface.cc
lily/font-interface.cc
lily/grob-scheme.cc
lily/include/font-interface.hh
lily/include/paper-def.hh
lily/line-spanner.cc
lily/multi-measure-rest.cc
lily/music-output-def.cc
lily/paper-column.cc
lily/paper-def.cc
lily/system-start-delimiter.cc
lily/text-item.cc
lily/text-spanner.cc
lily/time-signature.cc
lily/tuplet-bracket.cc
lily/volta-bracket.cc
ly/params-init.ly
scm/chord-name.scm
scm/define-grobs.scm

index 2f56d462cbbf6695321e7c600dc08e09ad7a50bd..333324b91647fee0d7957304e05d91d7bdfbf3bf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2003-09-14  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
+       * scm/chord-name.scm: remove new-chord-name-brew-molecule ; use
+       ChordNames.SeparationItem #'padding for adjusting space after chords.
+       
+       * lily/music-output-def.cc (LY_DEFINE): 
+       new function ly:paper-lookup.
+       
        * mf/parmesan-clefs.mf: use # quantities for char_box
        offsets. Fixes overflow errors in the PFA. 
 
index 6e5e4aeacec3e40ee348485a9f83f796ee35adbd..daf5b68b185d44caaf857694f056400c2b971605 100644 (file)
@@ -1,7 +1,14 @@
+/*
+  accidental.cc -- implement Accidental_interface
+
+  (c) 2001--2003 Han-Wen Nienhuys
+  
+ */
 #include "font-interface.hh"
 #include "item.hh"
 #include "molecule.hh"
 #include "accidental-interface.hh"
+#include "paper-def.hh"
 
 /*
   TODO: insert support for smaller cautionaries, tie-break-reminders.
@@ -184,7 +191,7 @@ Accidental_interface::brew_molecule (SCM smob)
                             (ly_symbol2scm ("font-relative-size"),
                              scm_int2num (-1)), SCM_EOL),
                    ac);
-      fm = Font_interface::get_font (me->get_paper (), ac);
+      fm = select_font (me->get_paper (), ac);
     }
   else
     fm = Font_interface::get_default_font (me);
index 72a944c3d833959bc400ea8e489c0de53086df5a..c18f8ff78e97fc80d55ac7064745099cbf07c9c1 100644 (file)
@@ -72,7 +72,6 @@ void
 Break_align_interface::do_alignment (Grob *me)
 {
   Item * item = dynamic_cast<Item*> (me);
-  int rank = Paper_column::get_rank (item->get_column ());
   Link_array<Grob> elems
     = Pointer_group_interface__extract_grobs (me, (Grob*)0,
                                                 "elements");
index d120bd2d0e220a4ffd24f116cadab67b2e9febda..65fc05983af68b2a332f38de061bdf712eae03fa 100644 (file)
 #include "warn.hh"
 
 
-/*
-  TODO revise font handling.
-
-
-* relative sizes should relate to staff-space, eg.  font-staff-space
-= 1.2 ^ relative-size
-
-* If a relative size is given, lily should magnify the closest
-design size font to match that. (ie. fonts should have variable
-scaling)
-
-(this requires that fonts are stored as (filename , designsize))
-
-
-  
- */
-
-SCM
-Font_interface::font_alist_chain (Grob *me)
-{
-  /*
-    Ugh: why the defaults?
-   */
-  SCM defaults = me->get_paper ()->lookup_variable (ly_symbol2scm ("font-defaults"));
-
-  SCM ch = me->get_property_alist_chain (defaults);
-  return ch;
-}
-
-
-MAKE_SCHEME_CALLBACK(Font_interface, get_property_alist_chain, 1);
-SCM
-Font_interface::get_property_alist_chain (SCM grob)
-{
-  Grob * g = unsmob_grob (grob);
-  SCM_ASSERT_TYPE(g, grob, SCM_ARG1, __FUNCTION__, "grob");
-  return  font_alist_chain (g);
-}
-
 /*
   todo: split up this func, reuse in text_item? 
  */
@@ -64,7 +25,7 @@ Font_interface::get_default_font (Grob*me)
   if (fm)
     return fm;
 
-  fm = get_font (me->get_paper (),  font_alist_chain (me));
+  fm = select_font (me->get_paper (),  font_alist_chain (me));
   me->set_grob_property ("font", fm->self_scm ());
   return fm;
 }
@@ -81,134 +42,16 @@ LY_DEFINE(ly_font_interface_get_default_font,
 }
 
 
-Font_metric *
-Font_interface::get_font (Paper_def *paper, SCM chain)
-{
-  SCM name = ly_assoc_chain (ly_symbol2scm  ("font-name"), chain);
-  
-  if (!gh_pair_p (name) || !gh_string_p (gh_cdr (name)))
-    {
-      SCM proc = paper->lookup_variable (ly_symbol2scm ("properties-to-font"));
-      SCM fonts = paper->lookup_variable (ly_symbol2scm ("fonts"));
-
-      assert (gh_procedure_p (proc));
-      name = gh_call2 (proc, fonts, chain);
-    }
-  else
-    name  = gh_cdr (name);
-  
-  SCM mag = ly_assoc_chain (ly_symbol2scm ("font-magnification"), chain);
-  
-  Real rmag = gh_pair_p (mag) && gh_number_p (gh_cdr (mag))
-    ? gh_scm2double (gh_cdr (mag)) : 1.0;
-  
-  Font_metric *fm = paper->find_font (name, rmag);
-  return fm;
-}
-
-/*
-SCM routines for looking up fonts.
-
-wtk-fugue2, SCM:
-
-real   0m31.862s
-user   0m29.110s
-sys    0m0.260s
-
-wtk-fugue2, C++:
-
-real   0m26.964s
-user   0m24.850s
-sys    0m0.280s
-
-
-so a 14% speedup.
-
-*/
-
-static SCM shape_sym, family_sym, series_sym, rel_str0_sym, design_str0_sym, wild_sym;
-
-
-static void
-init_syms ()
-{
-  shape_sym  = scm_permanent_object (ly_symbol2scm ("font-shape"));
-  family_sym = scm_permanent_object (ly_symbol2scm ("font-family"));
-  series_sym = scm_permanent_object (ly_symbol2scm ("font-series"));
-  rel_str0_sym = scm_permanent_object (ly_symbol2scm ("font-relative-size"));
-  design_str0_sym = scm_permanent_object (ly_symbol2scm ("font-design-size"));
-  wild_sym = scm_permanent_object (ly_symbol2scm ("*"));
-}
-
-ADD_SCM_INIT_FUNC(fi_init_syms, init_syms);
-
-bool
-Font_interface::wild_compare (SCM field_val, SCM val)
-{
-  return (val == SCM_BOOL_F || field_val == wild_sym || field_val == val);
-}
-
-
-MAKE_SCHEME_CALLBACK (Font_interface,properties_to_font_name,2);
 SCM
-Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain)
+Font_interface::font_alist_chain (Grob*g)
 {
-  SCM shape = SCM_BOOL_F;
-  SCM family = SCM_BOOL_F;
-  SCM series = SCM_BOOL_F;
-
+  SCM defaults = g->get_paper ()->lookup_variable (ly_symbol2scm ("font-defaults"));
   
-  SCM point_str0 = ly_assoc_chain (design_str0_sym, alist_chain);
-  SCM rel_str0 = SCM_BOOL_F;
-
-  shape = ly_assoc_chain (shape_sym, alist_chain);
-  family = ly_assoc_chain (family_sym, alist_chain);
-  series = ly_assoc_chain (series_sym, alist_chain);
-
-  if (gh_pair_p (shape))
-    shape = ly_cdr (shape);
-  if (gh_pair_p (family))
-    family = ly_cdr (family);
-  if (gh_pair_p (series))
-    series = ly_cdr (series);
-
-
-  if (gh_pair_p (point_str0))
-    point_str0 = ly_cdr (point_str0);
-  else
-    {
-      rel_str0 = ly_assoc_chain (rel_str0_sym, alist_chain);
-      if (gh_pair_p (rel_str0))
-       rel_str0 = ly_cdr (rel_str0);
-    }
+  return g->get_property_alist_chain (defaults);
+}
 
-  for (SCM s = fonts ; gh_pair_p (s); s = ly_cdr (s))
-    {
-      SCM qlist = ly_caar (s);
 
-      if (!wild_compare (scm_list_ref (qlist, gh_int2scm (1)), series))
-       continue;
-      if (!wild_compare (scm_list_ref (qlist, gh_int2scm (2)), shape))
-       continue;
-      if (!wild_compare (scm_list_ref (qlist, gh_int2scm (3)), family))
-       continue;
   
-      if (point_str0 == SCM_BOOL_F && !wild_compare (ly_car (qlist), rel_str0))
-       continue;
-          
-      SCM qname = ly_cdar (s);
-      return qname;
-    }
-
-  warning (_ ("couldn't find any font satisfying "));
-  scm_write (scm_list_n (point_str0, shape, series , family, rel_str0,
-                        SCM_UNDEFINED), scm_current_error_port ());
-  scm_flush (scm_current_error_port ());
-  return scm_makfrom0str ("cmr10");
-  
-}
-
 
 
 ADD_INTERFACE (Font_interface, "font-interface",
index eb49ddf153b81c038d9c63f79a06adf21b2496eb..a4cb06249c865433b5e6d701efd1b1463eb8d9b2 100644 (file)
@@ -163,3 +163,19 @@ LY_DEFINE (get_broken_into,
   return s;
 }
 
+
+
+LY_DEFINE(ly_property_alist_chain, "ly:grob-property-chain",
+         1,1,0,
+         (SCM grob, SCM defaults),
+         "Return all the properties of @code{grob}. Glue @var{defaults} at the end of the chain.")
+{
+  Grob * g = unsmob_grob (grob);
+  SCM_ASSERT_TYPE(g, grob, SCM_ARG1, __FUNCTION__, "grob");
+
+  if (defaults == SCM_UNDEFINED)
+    defaults = SCM_EOL;
+
+  SCM ch = g->get_property_alist_chain (defaults);  
+  return ch;
+}
index 1ebee16316073eff383a97914d674d87ad00cb7c..11a3d3af8d48d06f7d8b1f326d8a5cbef17c12a6 100644 (file)
 struct Font_interface
 {
   static SCM font_alist_chain (Grob*);
-  static Font_metric * get_font (Paper_def*, SCM alist_chain);
   static Font_metric * get_default_font (Grob*);
-  static bool wild_compare (SCM field_val, SCM val);
-  DECLARE_SCHEME_CALLBACK (properties_to_font_name, (SCM,SCM));
-  DECLARE_SCHEME_CALLBACK (get_property_alist_chain, (SCM));
   static bool has_interface (Grob*);
 };
 
index 76d723a33e4666f569f7093e0eba2fe8e4a7af15..c177436ec8ae06727620df1743b4aeca00509651 100644 (file)
@@ -77,4 +77,6 @@ public:
 };
 
 Paper_def * unsmob_paper (SCM x);
+Font_metric *select_font (Paper_def *paper, SCM chain);
+
 #endif // Paper_def_HH
index ee5c0e9c2c1f8fee0b6b2743f428d38de3c4546b..cc5011dbb15484b26ea50e96d2ec2f24a01f4205 100644 (file)
@@ -168,7 +168,7 @@ Line_spanner::line_molecule (Grob *me, Real thick,
                                             ly_symbol2scm ("music")),
                                    SCM_UNDEFINED);
       
-      Font_metric *fm = Font_interface::get_font (me->get_paper (),
+      Font_metric *fm = select_font (me->get_paper (),
                                                  gh_cons (style_alist,
                                                           alist_chain));
       Molecule m = fm->find_by_name ("scripts-trill-element");
index ad4c377b1f2a4263c4cd057abd49ab61abd0d142..1fb8e620ca4386c593b3c1466a97dce0c8351b0d 100644 (file)
@@ -136,7 +136,7 @@ Multi_measure_rest::symbol_molecule (Grob *me, Real space)
 
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   Font_metric *musfont
-    = Font_interface::get_font (me->get_paper (), alist_chain);
+    = select_font (me->get_paper (), alist_chain);
 
   SCM sml = me->get_grob_property ("use-breve-rest");
   if (measures == 1)
index f9a305127c15decaaecc23af12ddf4b3e2d09b47..8c353b6bc7e3991e66338390d31a44c1bce91752 100644 (file)
@@ -161,3 +161,24 @@ Music_output_def::lookup_variable (SCM sym) const
 
   return scm_variable_ref (var);
 }
+
+
+LY_DEFINE(ly_paper_lookup,
+         "ly:paper-lookup",
+         2, 0,0,
+         (SCM pap, SCM sym),
+         "Lookup @var{sym} in @var{pap}. Return the value "
+         " or '() if undefined.  "
+         )
+{
+  Music_output_def *op = unsmob_music_output_def (pap);
+  SCM_ASSERT_TYPE (op, pap, SCM_ARG1, __FUNCTION__, "Paper");
+  SCM_ASSERT_TYPE (gh_symbol_p (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
+
+  SCM v = op->lookup_variable (sym);
+
+  if (SCM_VARIABLEP(v))
+    return SCM_VARIABLE_REF(v);
+  else
+    return SCM_EOL;
+}
index ab2f46da8b81c0263aa4c379ccbc09075479fcdb..54151c63cb622faa4f7c6309ee69c86d8014362f 100644 (file)
@@ -16,7 +16,7 @@
 #include "text-item.hh"
 #include "lookup.hh"
 #include "font-interface.hh"
-
+#include "paper-def.hh"
 
 
 
@@ -120,7 +120,8 @@ Paper_column::brew_molecule (SCM p)
   String r = to_string (Paper_column::get_rank (me));
   SCM properties = Font_interface::font_alist_chain (me);
 
-  SCM scm_mol = Text_item::interpret_markup (p, properties,
+  SCM scm_mol = Text_item::interpret_markup (me->get_paper ()->self_scm (),
+                                            properties,
                                             scm_makfrom0str (r.to_str0 ()));
   Molecule t = *unsmob_molecule (scm_mol);
   t.align_to (X_AXIS, CENTER);
index 217e33752441eb1f075f3347719d3bb4cf8928b4..4d59d1f763b464eafebef2dd5640672f36409d3c 100644 (file)
@@ -153,34 +153,6 @@ Paper_def::font_descriptions ()const
   return l;
 }
 
-/*
-  Font_interface should be reorganised?
-*/
-#include "font-interface.hh"
-
-
-LY_DEFINE(ly_paper_get_font,"ly:paper-get-font", 2, 0, 0,
-         (SCM paper, SCM chain),
-         "Return a font metric satisfying the font-qualifiers in the alist chain @var{chain}.\n"
-"\n"
-"The font object represents the metric information of a font. Every font\n"
-"that is loaded into LilyPond can be accessed via Scheme. \n"
-"\n"
-"LilyPond only needs to know the dimension of glyph to be able to process\n"
-"them. This information is stored in font metric files. LilyPond can read\n"
-"two types of font-metrics: @TeX{} Font Metric files (TFM files) and\n"
-"Adobe Font Metric files (AFM files).  LilyPond will always try to load\n"
-"AFM files first since they are more versatile.\n"
-"\n"
-"An alist chain is a list of alists, containing grob properties.\n")
-{
-  Paper_def *pap = unsmob_paper (paper);
-  SCM_ASSERT_TYPE(pap, paper, SCM_ARG1, __FUNCTION__, "paper definition");
-  
-  Font_metric*fm = Font_interface::get_font (pap, chain);
-  return fm->self_scm();
-}
-
 Paper_def* 
 unsmob_paper (SCM x)
 {
index dca2d8d27be4211e46b1eaa577ead701e1f316af..4254c4b6729a960e2fe5e045ddcb93f11e5da0a0 100644 (file)
@@ -152,7 +152,7 @@ System_start_delimiter::staff_brace (Grob*me, Real y)
   SCM sz = gh_cons (ly_symbol2scm ("font-relative-size"), ly_symbol2scm ("*"));
   
   SCM alist = scm_list_n (fam, sz, SCM_UNDEFINED);
-  fm = Font_interface::get_font (me->get_paper (), scm_list_n (alist, SCM_UNDEFINED));
+  fm = select_font (me->get_paper (), scm_list_n (alist, SCM_UNDEFINED));
   
 
   int lo = 0;
index f695a06f501fac153602d219a42b1f7521e311c4..fef4babe23d08c088616013472c6e0a198affb5b 100644 (file)
@@ -15,7 +15,6 @@
 #include "virtual-font-metric.hh"
 #include "paper-def.hh"
 
-
 MAKE_SCHEME_CALLBACK(Text_item,interpret_markup,3);
 SCM
 Text_item::interpret_markup (SCM paper, SCM props, SCM markup)
@@ -23,7 +22,7 @@ Text_item::interpret_markup (SCM paper, SCM props, SCM markup)
   if (gh_string_p (markup))
     {
       Paper_def *pap = unsmob_paper (paper);
-      Font_metric *fm = Font_interface::get_font (pap, props);
+      Font_metric *fm = select_font (pap, props);
   
       SCM list = scm_list_n (ly_symbol2scm ("text"), markup, SCM_UNDEFINED);
       
@@ -60,10 +59,10 @@ SCM
 Text_item::brew_molecule (SCM grob)
 {
   Grob * me = unsmob_grob (grob);
-
+  
   SCM t = me->get_grob_property ("text");
   SCM chain = Font_interface::font_alist_chain (me);
-  return interpret_markup (grob, chain, t);
+  return interpret_markup (me->get_paper ()->self_scm (), chain, t);
 }
 
 
index 6037882dd6a8d3303d4f017ce3d97ac8441a0444..88d20d457b71721aa580e96002ba11ae7d495964 100644 (file)
@@ -46,6 +46,7 @@ Text_spanner::brew_molecule (SCM smob)
     padding = gh_scm2double (itp);
 
   Grob *common = spanner->get_bound (LEFT)->common_refpoint (spanner->get_bound (RIGHT), X_AXIS);
+  Paper_def * paper = me->get_paper();
   
   Interval span_points;
   Drul_array<bool> broken;
@@ -87,7 +88,7 @@ Text_spanner::brew_molecule (SCM smob)
          SCM text = index_get_cell (edge_text, d);
 
          if (Text_item::markup_p (text)) 
-           edge[d] = *unsmob_molecule (Text_item::interpret_markup (smob, properties, text));
+           edge[d] = *unsmob_molecule (Text_item::interpret_markup (paper->self_scm (), properties, text));
          
          if (!edge[d].empty_b ())
            edge[d].align_to (Y_AXIS, CENTER);
@@ -112,8 +113,8 @@ Text_spanner::brew_molecule (SCM smob)
       span_points[LEFT] += gh_scm2double (ly_car (ew));
       span_points[RIGHT] -= gh_scm2double (ly_cdr (ew));
     }
-  
-  Real thick = me->get_paper ()->get_realvar (ly_symbol2scm ("linethickness"));  
+
+  Real thick = paper->get_realvar (ly_symbol2scm ("linethickness"));  
   SCM st = me->get_grob_property ("thickness");
   if (gh_number_p (st))
     {
index 187b88b832f34099f71231dc8f00577688f3afe1..67c03a8ef31037e8d2d8d2ea3c5e8a99e01796f2 100644 (file)
@@ -96,10 +96,10 @@ Time_signature::numbered_time_signature (Grob*me,int num, int den)
   me->set_grob_property ("font-family", ly_symbol2scm ("number"));
 
 SCM sn =
-    Text_item::interpret_markup (me->self_scm(), chain,
+    Text_item::interpret_markup (me->get_paper ()->self_scm(), chain,
                                 scm_makfrom0str (to_string (num).to_str0 ()));
 SCM sd =
-    Text_item::interpret_markup (me->self_scm(), chain,
+    Text_item::interpret_markup (me->get_paper ()->self_scm(), chain,
                                 scm_makfrom0str (to_string (den).to_str0 ()));
 
   Molecule n = *unsmob_molecule (sn);
index 973ac4bc9355af70adc6b7e612d606df20f2a796..21d57e93946c6efd3104714728d0c5cf8ef34c18 100644 (file)
@@ -154,11 +154,12 @@ Tuplet_bracket::brew_molecule (SCM smob)
   Real ly = gh_scm2double (me->get_grob_property ("left-position"));
   Real ry = gh_scm2double (me->get_grob_property ("right-position"));  
   SCM number = me->get_grob_property ("text");
-  
+
+  Paper_def *pap = me->get_paper ();
   if (gh_string_p (number) && number_visibility)
     {
       SCM properties = Font_interface::font_alist_chain (me);
-      SCM snum = Text_item::interpret_markup (smob, properties, number);
+      SCM snum = Text_item::interpret_markup (pap->self_scm (), properties, number);
       Molecule num = *unsmob_molecule (snum);
       num.align_to (X_AXIS, CENTER);
       num.translate_axis (w/2, X_AXIS);
@@ -171,7 +172,7 @@ Tuplet_bracket::brew_molecule (SCM smob)
       
   if (bracket_visibility)      
     {
-      Real  lt =  me->get_paper ()->get_realvar (ly_symbol2scm ("linethickness"));
+      Real  lt =  pap->get_realvar (ly_symbol2scm ("linethickness"));
   
       SCM thick = me->get_grob_property ("thickness");
       if (gh_number_p (thick))
index 05b5f973fd81d413988aeaa7575f0c0666c1308f..2200983609cdb9110abe18e5ef3adb1ebb7ccb68 100644 (file)
@@ -65,7 +65,8 @@ Volta_bracket_interface::brew_molecule (SCM smob)
     (strcmp(cs,":|")!=0 && strcmp(cs,"|:")!=0 && strcmp(cs,"|.")!=0
      && strcmp(cs,":|:")!=0 && strcmp(cs,".|")!=0);
 
-  Real staff_thick = me->get_paper ()->get_realvar (ly_symbol2scm ("linethickness"));  
+  Paper_def * paper =me->get_paper ();
+  Real staff_thick = paper->get_realvar (ly_symbol2scm ("linethickness"));  
   Real half_space = 0.5;
 
   Item * bound = dynamic_cast<Spanner*> (me)->get_bound (LEFT);
@@ -107,7 +108,7 @@ Volta_bracket_interface::brew_molecule (SCM smob)
     {
       SCM text = me->get_grob_property ("text");
       SCM properties = me->get_property_alist_chain (SCM_EOL);
-      SCM snum  = Text_item::interpret_markup (smob, properties, text);
+      SCM snum  = Text_item::interpret_markup (paper->self_scm (), properties, text);
       Molecule num = *unsmob_molecule (snum);
 
       mol.add_at_edge (X_AXIS, LEFT, num, - num.extent (X_AXIS).length ()
index 3fb8ab53521e8609f06a9c41ce9810d8aede4012..726128c7e54c505155a0d0ac003274cf9aa94d9a 100644 (file)
@@ -68,5 +68,4 @@ interscoreline = 4. \mm
        (font-series . medium)
        ))
 
-#(define properties-to-font Font_interface::properties_to_font_name)
 
index 7ed0f184d45a2def72881b8407353c1bc0ea6d4c..c15cb36ec5869d27d0fe16aae375d368ff9864b9 100644 (file)
@@ -121,25 +121,3 @@ FOOBAR-MARKUP) if OMIT-ROOT is given and non-false.
         (alist (map chord-to-exception-entry elts)))
     (filter (lambda (x) (cdr x)) alist)))
 
-
-(define-public (new-chord-name-brew-molecule grob)
-  (let*
-      (
-       (ws (ly:get-grob-property grob 'word-space))
-       (markup (ly:get-grob-property grob 'text))
-       (molecule (interpret-markup grob
-                                  (cons '((word-space . 0.0))
-                                        (Font_interface::get_property_alist_chain grob))
-                                  markup))
-       )
-
-    ;;
-    ;; chord names aren't in staffs, so WS is in global staff space.
-    (if (number? ws)
-       (ly:molecule-combine-at-edge
-        molecule
-        X RIGHT (ly:make-molecule "" (cons 0 ws) '(-1 . 1) )
-        0.0)
-       molecule)
-    ))
-
index aca39f17bb4e2a45f5a542ef6f327ac52cdafa70..10d9d597ed55880f09484e8713ce6733bc39269a 100644 (file)
 
     (ChordName
      . (
-       (molecule-callback . ,new-chord-name-brew-molecule)
+       (molecule-callback . ,Text_item::brew_molecule)
        (after-line-breaking-callback . ,Chord_name::after_line_breaking)
-       (word-space . 1.0)
+       (word-space . 0.0)
        (font-family . roman)
        (meta . ((interfaces . (font-interface                                                  rhythmic-grob-interface
                                                                                                text-interface chord-name-interface item-interface ))))