For a start:
1. what governs which element 0:3 of the array is used to choose
stem_length, minimum_stem_length, forced_stem_shorten?
2. inward stems of notes on ledger lines are extended to meet
the staff center, longer than 7. What parameter controls this?
3. What is a "forced stem direction" when stemup or stemdown is
specified?
4. Just to confirm: is a "staff position" \interline/2.0)
from params.ly:
% stems and beams
% poor man's array size
stem_max = 3.0;
%{ Specify length of stems for notes in the staff
that don't have beams.
Measured in staff positions.
%}
stem_length0 = 7.;
stem_length1 = 5.;
stem_length2 = 4.;
stem_length3 = 3.;
% only used for beams
minimum_stem_length0 = 0.0 ; % not used
minimum_stem_length1 = 3. ;
minimum_stem_length2 = 2.5;
minimum_stem_length3 = 2.0;
%{
stems in unnatural (forced) direction should be shortened,
according to [Roush & Gourlay]. Their suggestion to knock off
a whole staffspace seems a bit drastical: we'll do half.
%}
forced_stem_shorten0 = 1.0;
forced_stem_shorten1 = \forced_stem_shorten0;
forced_stem_shorten2 = \forced_stem_shorten1;
forced_stem_shorten3 = \forced_stem_shorten2;