<p>
-Copyright (c) 1997, 1998, 1999 Han-Wen Nienhuys and Jan Nieuwenhuizen.
+Copyright (c) 1997, 1998, 1999, 2000 Han-Wen Nienhuys and Jan Nieuwenhuizen.
<p>
@node Top, , , (dir)
@top
-@unnumberedsubsec Introduction
+@unnumberedsubsec Info
@itemize @bullet
@item @uref{DEDICATION.txt,Dedication}
@end itemize
-@unnumberedsubsec Documentation
+@unnumberedsubsec Manuals
@itemize @bullet
-@item @uref{faq.html,Frequently asked questions}, with answers
+@item @uref{faq.html,FAQ: Frequently asked questions}, with answers
@item @uref{programs.html,`Manual pages'}
@item @uref{../user/out-www/index.html,User documentation}
-@item @uref{../programmer/out-www/index.html,Programmer's documentation}
+@item @uref{../programmer/out-www/index.html,Programmer documentation}
@item @uref{../bibliography/out-www/index.html,Bibliography}
@item @uref{../misc/out-www/index.html,Miscellaneous texts}
@end itemize
@end itemize
-@unnumberedsubsec Logo:
+@unnumberedsubsec Logo
@itemize @bullet
@item @uref{../pictures/out-www/lelieblond.png, logo} in large size
@item @uref{../pictures/out-www/lelie-logo.png, logo} in medium size
@mudelafile{beam-extreme.ly}
-Beams should always reach the middle staff line, the second beam
+Beams should always reach the middle staff line. The second beam
counting from the note head side, should never be lower than the
second staff line. This does not hold for grace note beams.
+Override with @code{noStemExtend}.
@mudelafile{beam-position.sly}
-[f8 f] \grace { [f8 e8] } [f64 f]
+[f8 f] [f64 f] \grace { [f8 e8] }
+\property Voice.noStemExtend = ##t
+[f8 f]
\score {
\notes\relative c''{
\time 4/4;
- g1 g2 g4. g8 |
+ g1 a b c
+ g2 a b c
+ g4 a b c
}
\paper {
\paper_as_five
StaffContext=\translator {
\type "Engraver_group_engraver";
\name Staff ;
-
+ \consists "Output_property_engraver";
barAuto = ##t
voltaVisibility = ##t
Generic_property_list = #generic-staff-properties
\type "Engraver_group_engraver";
numberOfStaffLines = #1
\consists "Property_engraver";
-
+ \consists "Output_property_engraver";
+
Generic_property_list = #generic-staff-properties
barSize = #'staff-height
\type "Engraver_group_engraver";
dynamicPadding = #5.0
Generic_property_list = #generic-voice-properties
+ \consists "Output_property_engraver";
\consists "Dynamic_engraver"; % must come before text_engraver.
\name Voice ;
GraceContext=\translator {
\type "Grace_engraver_group";
\name "Grace";
+ \consists "Output_property_engraver";
Generic_property_list = #generic-grace-properties
stemLength = #6.0
verticalDirection = \up ;
- graceAccidentalSpace= 1.5 * \interline;
+ graceAccidentalSpace= 1.5 * \staffspace;
};
\translator{\GraceContext}
ThreadContext = \translator{
\type Engraver_group_engraver;
\consists "Note_heads_engraver" ;
+ \consists "Output_property_engraver";
Generic_property_list = #generic-thread-properties
\consists "Property_engraver";
\name Thread;
StaffGroupContext= \translator {
\type "Engraver_group_engraver";
\consists "Span_bar_engraver";
+ \consists "Output_property_engraver";
\consists "Staff_group_bar_engraver";
\name StaffGroup;
\translator{
\type "Engraver_group_engraver";
+ \consists "Output_property_engraver";
\consistsend "Axis_group_engraver";
\name ChordNameVoice ;
\name Score;
\consists "Timing_engraver";
+ \consists "Output_property_engraver";
\consists "Span_score_bar_engraver";
% \consists "Score_priority_engraver";
textheight = 60.0\char;
indent = 8.0\char;
-interline = (\staffheight - 1.0 ) / 4.0;
-stafflinethickness = \interline / 2.0;
+staffspace = (\staffheight - 1.0 ) / 4.0;
+stafflinethickness = \staffspace / 2.0;
+
+% deprecated
+interline = \staffspace;
% urg, need grace_ versions of these too?
-beam_thickness = 0.52 * (\interline - \stafflinethickness);
+beam_thickness = 0.52 * (\staffspace - \stafflinethickness);
#'beam-thickness = \beam_thickness; %% UGR
-interbeam = (2.0 * \interline + \stafflinethickness - \beam_thickness) / 2.0;
-interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0;
+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
% 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;
%{
dit(code(slur_x_gap)) Horizontal space between note and slur. Set to
-code(\interline / 5) by default.
+code(\staffspace / 5) by default.
%}
% OSU: suggested gap = ss / 5;
-slur_x_gap = \interline / 5.0;
-slur_y_gap = 0.25 * \interline;
-slur_y_free = 0.75 * \interline;
-slur_x_minimum = 1.5 * \interline;
+slur_x_gap = \staffspace / 5.0;
+slur_y_gap = 0.25 * \staffspace;
+slur_y_free = 0.75 * \staffspace;
+slur_x_minimum = 1.5 * \staffspace;
%{
Like beams, slurs often aren't as steep as the notes they encompass.
slur_height_damping = 0.4;
slur_interstaff_height_damping = 0.5;
% snap to stem if slur ends closer to stem than
-slur_snap_to_stem = 1.75 * \interline;
-slur_interstaff_snap_to_stem = 2.5 * \interline;
+slur_snap_to_stem = 1.75 * \staffspace;
+slur_interstaff_snap_to_stem = 2.5 * \staffspace;
% maximum dy change allowed by snapping
slur_snap_max_slope_change = 0.5;
slur_interstaff_snap_max_slope_change = 0.5;
-tie_x_minimum = \interline + \slur_x_minimum;
+tie_x_minimum = \staffspace + \slur_x_minimum;
% OSU: tie gap == slur gap
tie_x_gap = \slur_x_gap;
-tie_y_gap = 0.25 * \interline;
+tie_y_gap = 0.25 * \staffspace;
% length of a tie that's a staffspace high
-tie_staffspace_length = 4.0 * \interline;
+tie_staffspace_length = 4.0 * \staffspace;
% ugh: rename to bow (in bezier.cc and fonts.doc too...)
barthick_score = 1.0\char;
barthick_thin = 1.0\char;
-bracket_arch_thick = \interline / 3.0;
-bracket_width = 2.0 * \interline;
+bracket_arch_thick = \staffspace / 3.0;
+bracket_width = 2.0 * \staffspace;
bracket_thick = 2.0 * \stafflinethickness;
-bracket_arch_height = 1.5 * \interline;
+bracket_arch_height = 1.5 * \staffspace;
bracket_arch_width = \bracket_arch_height;
bracket_arch_angle = 50.0;
-tuplet_spanner_gap = 2.0 * \interline;
+tuplet_spanner_gap = 2.0 * \staffspace;
tuplet_thick = 1.0\char;
volta_thick = 1.0\char;
volta_spanner_height = 1.0\char;
% Multi-measure rests
multi_measure_rest_x_minimum = 2.5*\staffheight;
-multi_measure_rest_padding = 2.0 *\interline;
+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 * \interline;
+crescendo_shorten = 4.0 * \staffspace;
crescendo_thickness = \stafflinethickness;
-crescendo_height = 0.666 * \interline;
+crescendo_height = 0.666 * \staffspace;
% in internote.
restcollision_minimum_dist = 3.0;
postBreakPadding = 0.0;
% optical correction amount.
-stemSpacingCorrection = 0.5*\interline;
+stemSpacingCorrection = 0.5*\staffspace;
%{
%{
If columns do not have spacing information set, set it to this much
%}
-loose_column_distance = 2.0 * \interline;
+loose_column_distance = 2.0 * \staffspace;
%{
Relative cost of compressing (vs. stretching). Increasing this
% if stem is on middle line, choose this direction.
stem_default_neutral_direction = 1.0;
-% in interline
+% in staffspace
articulation_script_padding_default = 1.0;
% Backward compatibility -- has no function;
#'Local_key_item::left-padding = #'0.2
#'Local_key_item::right-padding = #'0.4
-#'Staff_symbol::staff-space = \interline ;
+#'Staff_symbol::staff-space = \staffspace ;
#'Staff_symbol::line-count = #5
\include \paperfile;
\include "paper.ly";
-interline = \staffheight / 4.0;
+staffspace = \staffheight / 4.0;
+stafflinethickness = \staffspace / 10.0;
+% deprecated
+interline = \staffspace;
-stafflinethickness = \interline / 10.0;
% urg, need grace_ versions of these too?
-beam_thickness = 0.52 * (\interline - \stafflinethickness);
+beam_thickness = 0.52 * (\staffspace - \stafflinethickness);
#'beam-thickness = \beam_thickness; %% UGR
-interbeam = (2.0 * \interline + \stafflinethickness - \beam_thickness) / 2.0;
-interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0;
+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
% 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;
%{
dit(code(slur_x_gap)) Horizontal space between note and slur. Set to
-code(\interline / 5) by default.
+code(\staffspace / 5) by default.
%}
% OSU: suggested gap = ss / 5;
-slur_x_gap = \interline / 5.0;
-slur_y_gap = 0.25 * \interline;
-slur_y_free = 0.75 * \interline;
-slur_x_minimum = 1.5 * \interline;
+slur_x_gap = \staffspace / 5.0;
+slur_y_gap = 0.25 * \staffspace;
+slur_y_free = 0.75 * \staffspace;
+slur_x_minimum = 1.5 * \staffspace;
%{
Like beams, slurs often aren't as steep as the notes they encompass.
slur_height_damping = 0.4;
slur_interstaff_height_damping = 0.5;
% snap to stem if slur ends closer to stem than
-slur_snap_to_stem = 1.75 * \interline;
-slur_interstaff_snap_to_stem = 2.5 * \interline;
+slur_snap_to_stem = 1.75 * \staffspace;
+slur_interstaff_snap_to_stem = 2.5 * \staffspace;
% maximum dy change allowed by snapping
slur_snap_max_slope_change = 0.5;
slur_interstaff_snap_max_slope_change = 0.5;
-tie_x_minimum = \interline + \slur_x_minimum;
+tie_x_minimum = \staffspace + \slur_x_minimum;
% OSU: tie gap == slur gap
tie_x_gap = \slur_x_gap;
-tie_y_gap = 0.25 * \interline;
+tie_y_gap = 0.25 * \staffspace;
% length of a tie that's a staffspace high
-tie_staffspace_length = 4.0 * \interline;
+tie_staffspace_length = 4.0 * \staffspace;
% ugh: rename to bow (in bezier.cc and fonts.doc too...)
%{ Ross. page 151 lists these values, but we think that thick lines
and kernings are too thick.
-bar_kern = 0.5 * \interline;
-bar_thinkern = 0.75 * \interline;
-barthick_thick = 0.5* \interline;
-barthick_score = 0.13333* \interline;
-barthick_thin = 0.1*\interline;
+bar_kern = 0.5 * \staffspace;
+bar_thinkern = 0.75 * \staffspace;
+barthick_thick = 0.5* \staffspace;
+barthick_score = 0.13333* \staffspace;
+barthick_thin = 0.1*\staffspace;
%}
barthick_thin = 1.6*\stafflinethickness;
barthick_score = 1.6*\stafflinethickness;
-bracket_arch_thick = \interline / 3.0;
-bracket_width = 2.0 * \interline;
+bracket_arch_thick = \staffspace / 3.0;
+bracket_width = 2.0 * \staffspace;
bracket_thick = 2.0 * \stafflinethickness;
-bracket_arch_height = 1.5 * \interline;
+bracket_arch_height = 1.5 * \staffspace;
bracket_arch_width = \bracket_arch_height;
bracket_arch_angle = 50.0;
-tuplet_spanner_gap = 2.0 * \interline;
+tuplet_spanner_gap = 2.0 * \staffspace;
tuplet_thick = 1.0*\stafflinethickness;
volta_thick = 1.6*\stafflinethickness;
-volta_spanner_height = 2.0 *\interline;
+volta_spanner_height = 2.0 *\staffspace;
% relative thickness of thin lines 1.6 : 1 : 0.8
stemthickness = 0.8*\stafflinethickness;
% Multi-measure rests
multi_measure_rest_x_minimum = 2.5*\staffheight;
-multi_measure_rest_padding = 2.0 *\interline;
+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 * \interline;
+crescendo_shorten = 4.0 * \staffspace;
crescendo_thickness = \stafflinethickness;
-crescendo_height = 0.666 * \interline;
+crescendo_height = 0.666 * \staffspace;
% in internote.
restcollision_minimum_dist = 3.0;
postBreakPadding = 0.0;
% optical correction amount.
-stemSpacingCorrection = 0.5*\interline;
+stemSpacingCorrection = 0.5*\staffspace;
%{
%{
If columns do not have spacing information set, set it to this much
%}
-loose_column_distance = 2.0 * \interline;
+loose_column_distance = 2.0 * \staffspace;
%{
Relative cost of compressing (vs. stretching). Increasing this
% if stem is on middle line, choose this direction.
stem_default_neutral_direction = 1.0;
-% in interline
+% in staffspace
articulation_script_padding_default = 1.0;
% Backward compatibility -- has no function;
#'Local_key_item::left-padding = #'0.2
#'Local_key_item::right-padding = #'0.4
-#'Staff_symbol::staff-space = \interline ;
+#'Staff_symbol::staff-space = \staffspace ;
#'Staff_symbol::line-count = #5
StartFontMetrics 2.0
FontName as 5
FontFamily as
- StartCharMetrics 56
+ StartCharMetrics 59
Comment BBox: (llx lly urx ury) * 1000
\f C 0; WX 7; N rests-0; B 0 0 1000 1000;
:
\f C 31; WX 5; N noteheads-ledgerending; B -1500 -500 1500 500;
-
-\f C 33; WX 9; N noteheads-0; B 0 -500 1000 500;
+\f C 33; WX 1; N noteheads-0; B 0 -500 1000 500;
O
-\f C 34; WX 6; N noteheads-1; B -1000 -500 0 500;
+\f C 33.5; WX 1; N noteheads-0; B -1000 -500 1000 2000;
+,-,
+`-'
+\f C 34; WX 1; N noteheads-1; B -1000 -500 0 500;
o
-\f C 35; WX 6; N noteheads-2; B -1000 0 0 1000;
+\f C 34.5; WX 1; N noteheads-1; B -1000 -500 0 500;
+°
+\f C 35; WX 1; N noteheads-2; B -1000 0 0 1000;
+x
+\f C 35.5; WX 1; N noteheads-2.5; B -1000 0 0 1000;
*
\f C 36; WX 9; N noteheads-0diamond; B 0 -2750 9900 2750;
V
% source file of the Feta (not an acronym for Font-En-Tja)
% pretty-but-neat music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
% Jan Nieuwenhuizen <janneke@gnu.org>
%
% these macros help create ascii logging output
%
% source file of LilyPond's pretty-but-neat music font
%
-% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
%
mode_setup;
%
% source file of LilyPond's pretty-but-neat music font
%
-% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
-% & Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
+% & Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
%
% source file of the Feta (Font-En-Tja) music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
font_identifier:="feta-braces11";
%
% source file of the Feta (Font-En-Tja) music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
font_identifier:="feta-braces13";
%
% source file of the Feta (Font-En-Tja) music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
font_identifier:="feta-braces16";
%
% source file of the Feta (Font-En-Tja) music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
font_identifier:="feta-braces20";
%
% source file of the Feta (Font-En-Tja) music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
font_identifier:="feta-braces23";
%
% source file of the Feta (Font-En-Tja) music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
font_identifier:="feta-braces26";
%
% source file of the Feta (not the Font-En-Tja) music font
%
-% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
fet_begingroup("rests");
% source file of the Feta (defintively not an abbreviation for Font-En-Tja)
% music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
%
% source file of the Feta (not the Font-En-Tja) music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>,
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>,
% Jan Nieuwenhuizen <janneke@gnu.org>
%
% source file of the Feta (not the Font-En-Tja) music font
%
-% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
fet_begingroup("nummer")
% source file of the Feta (defintively not an abbreviation for Font-En-Tja)
% music font
%
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997 Han-Wen Nienhuys <hanwen@cs.uu.nl>
% Jan Nieuwenhuizen <janneke@gnu.org>
%
% source file of the Feta (defintively not an abbreviation for Font-En-Tja)
% music font
%
-% (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1998--2000 Jan Nieuwenhuizen <janneke@gnu.org>
%
% this file is included by feta-scripts.mf
%
% source file of LilyPond's pretty-but-neat music font
%
-% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
-% & Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
+% & Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
% see Documentation/fonts.tex
%
% source file of the Feta (Font-En-Tja) music font
%
-% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
%
% display all feta chars in a pretty picture
% GNU LilyPond
-% (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1998--2000 Jan Nieuwenhuizen <janneke@gnu.org>
%
% urg: fool ls-latex
\def\urg{
;;
(define line-char "-")
+;;
+(define half-char-kludge #f)
+
;; the plotting fields
(define canvas 0)
;; urg:
(define (char n)
(let* ((font (get-font cur-font))
- (c (get-char font n)))
- (if c
- (plot-char c))))
+ (c
+ (if (and half-char-kludge
+ (assoc (+ n 0.5) font))
+ (get-char font (+ n 0.5))
+ (get-char font n))))
+ (if c
+ (plot-char c))))
(define (end-output)
(display (string-append
(if (< 0 (length font))
(set! fonts (cons (cons name font) fonts))))))))
+(define (number->rounded-exact x)
+ (* (sign x) (inexact->exact (abs x))))
+
(define (move-to x y)
(set! cur-x x)
- (set! cur-y y))
+ (let ((ey (number->rounded-exact y)))
+ (if (= 0.5 (- (abs ey) (abs y)))
+ (set! half-char-kludge #t)
+ (set! half-char-kludge #f))
+ (set! cur-y ey)))
(define (put c)
(plot cur-x cur-y c))