Werner Lemberg [Tue, 18 Jan 2005 22:27:08 +0000 (22:27 +0000)]
* scm/framework-ps.scm (ps-embed-pfa): New function to define a font
resource.
(setup): New function to define a `Setup' environment.
(preamble): Use new functions.
* ps/lilypond.defs (init-lilypond-parameters): New function to get rid of
directly executed PS code. Used in scm/framework-ps.scm.
Werner Lemberg [Thu, 13 Jan 2005 22:55:38 +0000 (22:55 +0000)]
This patch addresses the following problems in the feta sources
files which contribute to the fetaXX fonts.
. Many fixes for rasterization at low resolutions (consistent use of
`vround' and `hround', integer shift values for paths, applying
`eps' for mirrored paths, use of `define_whole_pixels' and
friends, etc.) -- while this probably looks like a waste of time
it has revealed deficiencies in some glyph shapes. See comment at
the end of feta-params.mf how vertical symmetry is achieved.
. The `---' operator has been replaced everywhere with `--'; this
both improves and considerably reduces the font size after
conversion with mf2pt1.
These change aren't explicitly mentioned below since virtually all
glyphs are affected.
Other notable differences:
. Glyphs from feta-accordion.mf now have charboxes around the
outline.
. Fixed incorrect charbox for `accDot'.
. The `rcomma' and `lcomma' glyphs were distorted due to a typo.
. Fixed position of the bow in the `upprall' glyph and its siblings.
. The bulb size in the `2/2 meter' and `4/4 meter' glyphs is now
dependent on the staff line thickness to avoid touching the middle
staff line at smaller sizes.
. Largely extended output for feta-testXX: Where useful, glyphs
are shown both between and on staff lines.
* mf/feta-params.mf (staff_space_rounded,
stafflinethickness_rounded, linethickness_rounded,
ledgerlinethickness_rounded, stemthickness_rounded): New variables.
Update all code which uses them where appropriate.
(feta_eps, feta_shift, feta_space_shift, feta_offset, feta_fillpen):
New variables used to control rasterization at low resolutions. Set
to zert if feta code is processed with metapost.
* mf/feta-macros.mf (draw_staff, draw_staff_outline): Updated.
(draw_rounded_block, draw_square_block): Updated to use `--' only.
(flare_path): Updated.
Make it work with `filldraw' (but only circular pens).
(hfloor, vfloor, hceiling, vceiling): New macros.
* mf/feta-params.mf (to_bp): New macro for mf2pt1.
(set_char_box): Updated.
Add code which emits specials for mf2pt1 if run with metapost.
* mf/feta-accordion.mf ("accDiscant", "accFreebase", "accStdbase"):
Use `draw' again in mf mode to have good pixel dropout control.
Fix intersection points of horizontal lines with circle.
("accDot"): Fix parameters for set_char_box.
("accOldEE"): Use `draw' again in mf mode to have good pixel dropout
control.
* mf/feta-banier.mf: Updated.
* mf/feta-bolletjes.mf (remember_pic): New variable, used for
testing.
(undraw_inside_ellipse): Remove `center' argument. Update all
callers.
(draw_brevis): New macro, called by "Brevis notehead".
(draw_whole_triangle_head): New macro, called by "Whole
trianglehead".
(draw_small_triangle_head): Use `filldraw'.
* mf/feta-eindelijk.mf: Remove useless global group.
Updated.
* mf/feta-klef.mf (draw_c_clef): Correct point positions for using
`filldraw'.
* mf/feta-pendaal.mf: Updated.
* mf/feta-puntje.mf: Updated.
* mf/feta-schrift.mf (draw_very_long_fermata): Simplified to use
less points.
("Flageolet"): Use `draw' again in mf mode to have good pixel
dropout control.
("Varied Coda"): Use `draw_block'.
(draw_comma): Fix typo.
(draw_arpeggio_arrow): Use `draw' also in mf mode to have good
pixel dropout control.
* mf/feta-slag.mf ("upprall", "downprall", "lineprall"): Fix start
position of bow.
* mf/feta-timesig.mf (draw_C): Reduce bulb size for smaller design
sizes.
* mf/feta-toevallig.mf (remember_pic): New variable, used for
testing.
(draw_meta_sharp): Much simplified.
("Sharp", "1/2 Sharp", "3/4 Sharp"): Don't rotate but shift.
* mf/feta-test-generic.mf: Include all files as in feta-generic.mf.
Nicolas Sceaux [Mon, 10 Jan 2005 22:05:06 +0000 (22:05 +0000)]
* lily/include/input.hh (class Input): new `end_' slot for end of
input. Renamed defined_str0_ to start_.
* lily/input.cc (Input): Add Input::Input (Input const &) and
remove Input::Input (Source_file*, char const *). Use the new
slots.
(set_location): method used by bison to propagate input
locations (YYLLOC_DEFAULT).
(end_line_number, end_column_number, step_forward): new methods
* lily/input-scheme.cc (ly:input-both-locations): new function,
similar to ly:input-location, but also return the end line and
column.
* lily/include/includable-lexer.hh:
* lily/includable-lexer.cc:
* lily/include/lily-lexer.hh (class Lily_lexer):
* lily/lily-lexer.cc (add_lexed_char): Move add_lexed_char from
Includable_lexer to Lily_lexer, in order to update lexloc (the
yylloc), a new slot of Lily_lexer.
(here_input, LexerError): simplify by using the lexloc slot (aka
yylloc)
* lily/lexer.ll: #define yylloc to use input locations (it may
be useless here?). Fixed the #embedded_scm rule (step the location
forward in order to skip the sharp sign before parsing the scheme
expression)
* lily/include/lily-parser.hh (class Lily_parser):
* lily/lily-parser.cc: Remove push_spot(), pop_spot() and
here_input()
(parser_error): overload for more precise locations of errors.
* lily/parser.yy (YYLTYPE): set location type to Input
(YYLLOC_DEFAULT): use Input::set_location()
(yylex): add the YYLTYPE* location parameter.
Clean push_spot()/pop_spot()/here_input(), and use @$, @1, etc.
Give an Input parameter to THIS->parser-error() for more accurate
messages.
(all-grob-descriptions): remove all
extra-offsets from definitions.
2005-01-08 Erlend Aasland <erlenda@gmail.com>
* scm/output-lib.scm: Rename guitar-tunings to guitar-tuning and
add tuning for 4-string bass and some common 4/5-string banjo tunings.
New function (four-string-banjo) turns a 5-string tuning into a 4-string
tuning.
New function (fret-number-tablature-format-banjo) computes correct fret
numbers on 5-string banjos.
Graham Percival [Thu, 6 Jan 2005 22:47:37 +0000 (22:47 +0000)]
Adding string quartet \tag part extraction. Large section with
@verbose. I think it's ok, but if anything breaks web-doc, it would
be this untested patch.
(gui_b): Remove handy developer-only
PKG_CONFIG_PATH settings that cater for Jan-and-Han-Wen ~/usr/pkg/
CVS source installations (but break other non-default but correct
PKG_CONFIG_PATH setups), as this is no longer developer-only.
Werner Lemberg [Mon, 3 Jan 2005 07:54:19 +0000 (07:54 +0000)]
Prepare glyph shapes for mf2pt1 conversion.
* mf/feta-accordion.mf (accreg_pen): Removed. No longer used.
(accDiscant, accFreebase, accStdbase): Replace `draw' with
`penstroke'.
(accDot): Use `drawdot'.
(accBayanbase): Replace `draw' with `draw_gridline'.
(print_penpos): Moved to feta-macros.mf.
(accOldEE): Replace `filldraw' with `penstroke'.
Replace `draw' with `penstroke' and `drawdot'.
* mf/feta-bolletjes (draw_cross): Remove call to `labels'.
* mf/feta-eindelijk.mf (draw_rest_bulb, draw_eigth_rest): Add
paremeter to control drawing of labels. Update all callers.
* mf/feta-klef.mf (draw_c_clef): Use `&' not `..' to connect paths.
(new_bulb): Return a bulb as a single path. To do that, it now
takes some more parameters. Updated all callers.
(draw_gclef): Major clean-up. `draw' has been replaced with
`penstroke', unnecessary outlines have been removed.
Remove (unused) gnome-canvas code.
* mf/feta-macros.mf (print_penpos): New macro (from
feta-accordion.mf).
Other minor fixes.
* mf/feta-pendaal.mf ("Pedal asterisk"): Use `undrawdot'.
("Pedal dot"): Use `drawdot'.
(draw_pedal_P): Add parameter to control drawing of labels. Update
all callers.
Fix shape at top.
(draw_pedal_e): Add parameter to control drawing of labels. Update
all callers.
(draw_pedal_d): Add parameter to control drawing of labels. Update
all callers.
Revert drawing direction.
* mf/feta-schrift.mf (draw_fermata): Use single path.
(draw_short_fermata): Replace `filldraw' with `fill'.
(draw_long_fermata, draw_very_long_fermata): Replace calls to
`draw_rounded_block' with a single path.
("Thumb"): Draw full circle instead of mirroring segments.
(draw_accent): New macro.
("> accent", "espr"): Use it.
(draw_marcato): Replace `filldraw' and `draw' with `fill'.
("open (unstopped)"): Draw full circle instead of mirroring
segments.
(draw_vee): Removed.
("Upbow"): Use `draw_accent' instead of `draw_vee'.
("Downbow"): Replace calls to `draw_rounded_block' with a single
path.
("Trill (`tr')"): Replace overlapping loop drawn with `draw' with
partial pieces drawn with `fill' -- these do still overlap with the
stem of the `t' but just once, not multiple times so that fontforge
can handle it gracefully.
Change other parts of the glyph so that fontforge's overlapping
algorithm reliably works.
(draw_heel): Replace `draw' with `fill'.
(draw_toe): Use `draw_accent' instead of `draw_vee'.
("Flageolet"): Replace `draw' with `penstroke'.
("Segno"): Replace `filldraw' with `penstroke'.
Replace `draw' with `drawdot'.
("Coda"): Replace `fill' with `penstroke', using a single path.
("Varied Coda"): Use less overlapping paths.
(draw_arpeggio_arrow): Replace `filldraw' with `fill', using a
single path.
* mf/feta-slag.mf (draw_trillelement): Put `clearxy' outside of
group to better control the `labels' command.
Rename argument to `offset' and use it actually. Update all
callers.
Replace `filldraw' with `fill'.
("mordent", "prallmordent", "upmordent", "downmordent",
"lineprall"): Replace `draw' with `draw_gridline'.
("upprall", "downprall"): Replace `draw' with `fill'.