style.h - abc2ps - A powerful sheet setting tool using the simple abc notation
(HTM) git clone git://vernunftzentrum.de/abc2ps.git
(DIR) Log
(DIR) Files
(DIR) Refs
---
style.h (3162B)
---
1 /*
2 * This file is part of abc2ps,
3 * Copyright (C) 1996,1997,1998 Michael Methfessel
4 * See file abc2ps.c for details.
5 */
6
7 /* Global style parameters for the note spacing and Knuthian glue. */
8
9 /* Parameters here are used to set spaces around notes.
10 Names ending in p: prefered natural spacings
11 Names ending in x: expanded spacings
12 Units: everything is based on a staff which is 24 points high
13 (ie. 6 pt between two staff lines). */
14
15 /* name for this set of parameters */
16 #define STYLE "std"
17
18 /* ----- set_style_pars: set the parameters which control note spacing ---- */
19 void set_style_pars (strictness)
20 float strictness;
21 {
22 float y;
23
24 f0p=0.10; f0x=0.15;
25 f5p=0.60; f5x=0.7;
26 f1p=1.0; f1x=1.0;
27
28 lnnp=40; lnnx=90;
29 bnnp=1.0; bnnx=1.0;
30 fnnp=1.0; fnnx=1.0;
31
32 lbnp=30; lbnx=50;
33 bbnp=0.2; bbnx=0.2;
34 rbnp=0.12; rbnx=0.10;
35
36 lnbp=30; lnbx=55;
37 bnbp=0.9; bnbx=0.9;
38 rnbp=0.10; rnbx=0.1;
39
40 /* set parameters f0p,f1p according to strictness */
41 /* the y*y makes the scale a bit more intuitive .. */
42 y=1-strictness;
43 f0p=y*y*0.40;
44 f0x=y*y*0.60;
45 if (verbose>3)
46 printf ("Set style parameters, strictness %.2f (f0p=%.3f, f0x=%.3f)\n",
47 strictness,f0p,f0x);
48
49 }
50
51
52 /* ----- Function of the spacing parameters ----- */
53
54 /* Parameters for the length-to-width mapping:
55 f0p, f5p, f1p are the return values for notes of zero duration,
56 half notes, and whole notes. A parabolic interpolation is
57 used for other note durations. The purpose is to allow a non-linear
58 relation between the note duration and the spacing on the paper.
59
60 Parameters for the note-note spacing:
61 (the internote spacing between two notes that follow
62 each other without a bar in between.)
63
64 - lnn is an overall multiplier, i.e. the final note width in points
65 is the return value of function nwid times lnn.
66 - bnn determines how strongly the first note enters into the spacing.
67 For bnn=1, the spacing is calculated using the first note.
68 For bnn=0, the spacing is the average for the two notes.
69 - fnn multiplies the spacing under a beam, to compress the notes a bit
70
71 Parameters for the bar-note spacing:
72 (the spacing between a bar and note at the measure start.)
73
74 - lbn is the overall multiplier for the return values from nwid.
75 - rbn is the note duration which defines the default spacing.
76 - bbn determines how strongly the note duration enters into the spacing.
77 For bbn=1, the spacing is lbn times the return value of nwid.
78 For bbn=0, the spacing is lbn times the width of rbn times timesig.
79
80 Parameters for the note-bar spacing:
81 (the spacing between a note at the measure end and the bar.)
82
83 - lnb is the overall multiplier for the return values from nwid.
84 - rnb is the note duration which defines the default spacing.
85 - bnb determines how strongly the note duration enters into the spacing.
86 For bnb=1, the spacing is lnb times the return value of nwid.
87 For bnb=0, the spacing is lnb times the width of rbn times timesig. */