Real ss = Staff_symbol_referencer::staff_space (me);
Real length = 7;
- SCM s = scm_cdr (scm_assq (ly_symbol2scm ("lengths"), details));
+ SCM s = ly_assoc_get (ly_symbol2scm ("lengths"), details, SCM_EOL);
if (scm_is_pair (s))
length = 2 * scm_to_double (robust_list_ref (durlog - 2, s));
Interval hp = head_positions (me);
if (dir && dir * hp[dir] >= 0)
{
- SCM sshorten = scm_cdr (scm_assq (ly_symbol2scm ("stem-shorten"), details));
+ SCM sshorten = ly_assoc_get (ly_symbol2scm ("stem-shorten"), details, SCM_EOL);
SCM scm_shorten = scm_is_pair (sshorten)
? robust_list_ref (max (duration_log (me) - 2, 0), sshorten) : SCM_EOL;
Real shorten = 2* robust_scm2double (scm_shorten, 0);
if (!lh && stemlet && !beam)
return SCM_EOL;
+ if (lh && robust_scm2int (lh->get_property ("duration-log"), 0) < 1)
+ return SCM_EOL;
+
if (is_invisible (me))
return SCM_EOL;
/* Simple standard stem length */
SCM details = me->get_property ("details");
- SCM lengths = scm_cdr (scm_assq (ly_symbol2scm ("beamed-lengths"), details));
+ SCM lengths = ly_assoc_get (ly_symbol2scm ("beamed-lengths"), details, SCM_EOL);
Real ideal_length
= scm_to_double (robust_list_ref (beam_count - 1, lengths))
- 0.5 * beam_thickness;
/* Condition: sane minimum free stem length (chord to beams) */
- lengths = scm_cdr (scm_assq (ly_symbol2scm ("beamed-minimum-free-lengths"), details));
+ lengths = ly_assoc_get (ly_symbol2scm ("beamed-minimum-free-lengths"), details, SCM_EOL);
Real ideal_minimum_free
= scm_to_double (robust_list_ref (beam_count - 1, lengths))
ideal_y -= robust_scm2double (beam->get_property ("shorten"), 0);
- SCM bemfl = scm_cdr (scm_assq (ly_symbol2scm ("beamed-extreme-minimum-free-lengths"),
- details));
+ SCM bemfl = ly_assoc_get (ly_symbol2scm ("beamed-extreme-minimum-free-lengths"),
+ details, SCM_EOL);
Real minimum_free
= scm_to_double (robust_list_ref (beam_count - 1, bemfl))
/* FIXME: Too many properties */
ADD_INTERFACE (Stem,
- "The stem represents the graphical stem. In addition, it "
- "internally connects note heads, beams, and tremolos. Rests "
- "and whole notes have invisible stems.\n"
+ "The stem represents the graphical stem. In addition, it"
+ " internally connects note heads, beams, and tremolos. Rests"
+ " and whole notes have invisible stems.\n"
"\n"
- "The following properties may be set in the @code{details} "
- "list.\n"
+ "The following properties may be set in the @code{details}"
+ " list.\n"
"\n"
"@table @code\n"
"@item beamed-lengths\n"
- " List of stem lengths given beam multiplicity.\n"
+ "List of stem lengths given beam multiplicity.\n"
"@item beamed-minimum-free-lengths\n"
- " List of normal minimum free stem lengths (chord to beams) "
- " given beam multiplicity.\n"
+ "List of normal minimum free stem lengths (chord to beams)"
+ " given beam multiplicity.\n"
"@item beamed-extreme-minimum-free-lengths\n"
- " List of extreme minimum free stem lengths (chord to beams) "
- " given beam multiplicity.\n"
+ "List of extreme minimum free stem lengths (chord to beams)"
+ " given beam multiplicity.\n"
"@item lengths\n"
- " Default stem lengths. The list gives a length for each "
- " flag count.\n"
+ "Default stem lengths. The list gives a length for each"
+ " flag count.\n"
"@item stem-shorten\n"
- " How much a stem in a forced direction should be shortened. "
- " The list gives an amount depending on the number of flags "
- " and beams.\n"
+ "How much a stem in a forced direction should be shortened."
+ " The list gives an amount depending on the number of flags"
+ " and beams.\n"
"@end table\n",
/* properties */