X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fparams.ly;h=e8643883668d7d6071cf9ec0ca131944cc7cc39a;hb=f1346920f64c571a1475d3ded295b9637560c6bc;hp=28406315594d5d145b80c7220377dd69b56100df;hpb=df7d31f879f9b39c2b89390b6e1b1b23d4987e74;p=lilypond.git diff --git a/ly/params.ly b/ly/params.ly index 2840631559..e864388366 100644 --- a/ly/params.ly +++ b/ly/params.ly @@ -1,130 +1,233 @@ % params.ly % generic paper parameters +%{ + +TODO: + +* cleanup +* use elt properties, iso. paper variables. +%} + + + paperfile = \papersize + ".ly"; % paperfile = "a4.ly"; \include \paperfile; \include "paper.ly"; -interline = \staffheight / 4.0; +staffspace = \staffheight / 4.0; +stafflinethickness = \staffspace / 10.0; +% deprecated +interline = \staffspace; -% thickness of stafflines -staffline = \interline / 10.0; -beam_thickness = 0.52 * (\interline - \staffline); -interbeam = (2.0 * \interline - \beam_thickness) / 2.0; -interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0; +% urg, need grace_ versions of these too? +beam_thickness = 0.52 * (\staffspace - \stafflinethickness); + + + +interbeam = (2.0 * \staffspace + \stafflinethickness - \beam_thickness) / 2.0; +interbeam4 = (3.0 * \staffspace - \beam_thickness) / 3.0; + +%{ +The space taken by a note is determined by the formula + + SPACE = arithmetic_multiplier * ( C + log2 (TIME) )) + +where TIME is the amount of time a note occupies. The value of C is +chosen such that the smallest space within a measure is +arithmetic_basicspace: + + C = arithmetic_basicspace - log2 (mininum (SHORTEST, 1/8)) + +The smallest space is the one following the shortest note in the +measure, or the space following a hypothetical 1/8 note. Typically +arithmetic_basicspace is set to a value so that the shortest note +takes about two noteheads of space (ie, is followed by a notehead of +space): + + 2*quartwidth = arithmetic_multiplier * ( C + log2 (SHORTEST) )) + + { using: C = arithmetic_basicspace - log2 (mininum (SHORTEST, 1/8)) } + { assuming: SHORTEST <= 1/8 } + + = arithmetic_multiplier * + ( arithmetic_basicspace - log2 (SHORTEST) + log2 (SHORTEST) ) + + = arithmetic_multiplier * arithmetic_basicspace + + { choose: arithmetic_multiplier = 1.0*quartwidth (why?)} + + = quartwidth * arithmetic_basicspace + + => + + arithmetic_basicspace = 2/1 = 2 + +If you want to space your music wider, use something like: + + arithmetic_basicspace = 4.; + +%} +% We use 0.9*\quartwidth, because 1.0 seems to wide. +% We don't adjust arithmetic_basicspace accordingly (why not?) +arithmetic_multiplier = 0.9 * \quartwidth ; +arithmetic_basicspace = 2.0; -% stems and beams -% -% poor man's array size -stem_max = 3.0; -% -stem_length0 = 3.5*\interline; -stem_length1 = 2.5 * \interline; -stem_length2 = 2.0 * \interline; -stem_length3 = 1.5 * \interline; - -% only used for beams -minimum_stem_length0 = 0.0; % not used -minimum_stem_length1 = 1.5 * \interline; -minimum_stem_length2 = 1.25 * \interline; -minimum_stem_length3 = 1.0 * \interline; - -% 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 = 0.5 * \interline; -forced_stem_shorten1 = \forced_stem_shorten0; -forced_stem_shorten2 = \forced_stem_shorten1; -forced_stem_shorten3 = \forced_stem_shorten2; -% there are several ways to calculate the direction of a beam % -% * MAJORITY : number count of up or down notes -% * MEAN : mean centre distance of all notes -% * MEDIAN : mean centre distance weighted per note +% UGH; junk these! % -% enum Dir_algorithm { DOWN=-1, UP=1, MAJORITY=2, MEAN, MEDIAN }; -% -DOWN = -1.0; -UP = 1.0; -MAJORITY = 2.0; -MEAN = 3.0; -MEDIAN = 4.0; -% [Ross]: majority -beam_dir_algorithm = \MAJORITY; % catch suspect beam slopes, set slope to zero if % outer stem is lengthened more than -beam_lengthened = 0.2 * \interline; +beam_lengthened = 0.2 * \staffspace; % and slope is running away steeper than beam_steep_slope = 0.2 / 1.0; + + +%{ + Slur parameters. + + See Documentation/programmer/fonts.doc +%} +% Height-limit (h_inf) = factor * staff_space +slur_height_limit_factor = 2.0; +slur_ratio = 1.0 / 3.0; + +slur_thickness = 1.2 * \stafflinethickness; + +slur_force_blowfit = 0.5; +slur_beautiful = 0.5; + + +%{ +Horizontal space between centre of notehead and slur. +%} % OSU: suggested gap = ss / 5; -slur_x_gap = \interline / 5.0; -slur_x_minimum = 3.0 * \interline; -slur_slope_damping = 0.5; -tie_x_minimum = \slur_x_minimum; -tie_x_gap = \slur_x_gap; -tie_slope_damping = 0.3; +slur_x_gap = \staffspace / 5.0; +slur_y_gap = 0.25 * \staffspace; +slur_y_free = 0.75 * \staffspace; +slur_x_minimum = 1.5 * \staffspace; -% ugh: rename to bow (in bezier.cc and fonts.doc too...) -% slur_thickness = 1.8 * \staffline; -slur_thickness = 1.4 * \staffline; -slur_height_limit = \staffheight; -% slur_ratio = 0.3; -% try bit flatter slurs -slur_ratio = 0.25; -slur_clip_ratio = 1.2; -slur_clip_height = 3.0 * \staffheight; -slur_clip_angle = 100.0; -slur_rc_factor = 2.4; +% The constants that define the valid areas for the middle control points +% Used in de_uglyfy. Bit empirical. +bezier_control1 = 1.5; +bezier_control2 = 0.8; +bezier_control3 = -2.0; -% ugh -notewidth = (\quartwidth + \wholewidth) / 2.0; +% URG: the magic constants for area asymmetry +bezier_pct_c0 = -0.2; +bezier_pct_c3 = 0.000006; +bezier_pct_out_max = 0.8; +bezier_pct_in_max = 1.2; +bezier_area_steps = 1.0; -% ugh -barsize = \staffheight; -rulethickness = \staffline; -% stem should be thinner? -stemthickness = \staffline; +%{ + Tie parameters +%} + +tie_height_limit_factor = 1.0 ; +tie_ratio = \slur_ratio; + +% OSU: tie gap == slur gap +tie_x_gap = \slur_x_gap; + +tie_staffline_clearance = 2.0 *\slur_thickness; +% ugh +notewidth = (\quartwidth + \wholewidth) / 2.0; + gourlay_energybound = 100000.; %{ -The following bounds the number of measures -on a line. Decreasing it greatly reduces computation time +Maximum number of measures per line to try when using Gourlay +method. %} gourlay_maxmeasures = 10.; -castingalgorithm = \Gourlay; + +% vertical space between lines. +line_kern = \staffspace; + +volta_thick = 1.6*\stafflinethickness; +volta_spanner_height = 2.0 *\staffspace; + +% relative thickness of thin lines 1.6 : 1 : 0.8 +stemthickness = 0.8*\stafflinethickness; +rulethickness = \stafflinethickness; + + +extender_height = 0.8*\stafflinethickness; + + +% Multi-measure rests +multi_measure_rest_x_minimum = 2.5*\staffheight; +multi_measure_rest_padding = 2.0 *\staffspace; +multi_measure_rest_expand_limit = 10.0; + +% chop off this much when next to pp / ff sign. +crescendo_shorten = 4.0 * \staffspace; +crescendo_thickness = \stafflinethickness; +crescendo_height = 0.666 * \staffspace; +crescendo_dash_thickness = 1.2*\stafflinethickness; +crescendo_dash = 4.0*\staffspace; + +% in internote. + + +% unit for note collision resolving +collision_note_width = \notewidth; %ugh. + +% optical correction amount. +stemSpacingCorrection = 0.5*\staffspace; + + +%{ + relative strength of space following breakable columns (eg. prefatory matter) + %} +breakable_column_space_strength = 2.0; + +% space after inline clefs and such get this much stretched +decrease_nonmus_spacing_factor = 1.0 ; %{ -Ross. page 151 + space before musical columns (eg. taken by accidentals) get this much + stretched when they follow a musical column, in absence of grace notes. -bar_kern = 0.5 * \interline; -bar_thinkern = 0.75 * \interline; -barthick_thick = 0.5* \interline; -barthick_thin = 0.1*\interline; -Can't be, these are ugly! Changed to old (TeX) values. + 0.0 means no extra space (accidentals are ignored) +%} +musical_to_musical_left_spacing_factor = 0.4; -% barline should be thicker! +%{ + stretch space this much if there are grace notes before the column +%} +before_grace_spacing_factor = 1.2; + +%{ +If columns do not have spacing information set, set it to this much +%} +loose_column_distance = 2.0 * \staffspace; +%{ +Relative cost of compressing (vs. stretching). Increasing this +will cause scores to be set looser +. %} -bar_kern = 3.0 * \staffline; -bar_thinkern = 3.0 * \staffline; -barthick_thick = 6.0* \staffline; -barthick_thin = 1.6*\staffline; +compression_energy_factor = 0.6; -tuplet_thick = 1.0*\staffline; -volta_thick = 1.6*\staffline; +% in staffspace +articulation_script_padding_default = 1.0; \include "engraver.ly"; + + +