--- /dev/null
+
+\score {
+\notes { c1 c1 \break c1 c1 }
+\paper {
+
+\translator{
+ \StaffContext
+ \consists Bar_number_engraver;
+ barNumberVisibilityFunction = #end-of-line-invisible
+}
+}
+}
+
{
axis_ = Y_AXIS;
text_p_ =0;
- visibility_lambda_
- = ly_eval_str ("non-postbreak-visibility");
}
void
Bar_script_engraver::do_creation_processing ()
{
+ String t = type_ + "VisibilityFunction";
+ SCM proc = get_property (t, 0);
+
+ if (gh_procedure_p (proc))
+ visibility_lambda_ = proc;
}
+
/*
Some interesting item came across. Lets attach the text and the
positioner to the item.
->set_elt_property ("padding",
gh_double2scm(paper_l ()->get_var ("interline")));
}
-
- text_p_->set_elt_property ("visibility-lambda",
- visibility_lambda_);
+
+ if (gh_procedure_p (visibility_lambda_))
+ text_p_->set_elt_property ("visibility-lambda",
+ visibility_lambda_);
announce_element (Score_element_info (text_p_, rq));
}
{
spanbar_p_ = get_span_bar_p();
spanbar_p_->set_parent (bar_l_arr_[0], Y_AXIS);
+
+ /*
+ UGH. UGH UUHGK GUHG G
+ (ly_eval_str ??)
+ */
String visnam = String(name()) + "-visibility";
spanbar_p_->set_elt_property ("visibility-lambda",
{
if(to_boolean (clef_p_->remove_elt_property("non-default")))
clef_p_->set_elt_property("visibility-lambda",
- ly_eval_str ("all-visibility"));
+ ly_eval_str ("all-visible"));
typeset_element (clef_p_);
clef_p_ =0;
if (!def)
{
item_p_->set_elt_property ("visibility-lambda",
- ly_eval_str ("all-visibility"));
+ ly_eval_str ("all-visible"));
}
}
mark_req_l_ = 0;
axis_ = Y_AXIS;
type_ = "mark";
- visibility_lambda_ = ly_eval_str ("mark-visibility");
}
void
{
axis_ = X_AXIS;
type_ = "margin";
- visibility_lambda_ = ly_eval_str ("postbreak-only-visibility");
}
%}
defaultClef = #"treble"
- marginBreakPriority = #-5
-
\consists "Separating_line_group_engraver";
\accepts "Voice";
BarNumberingStaffContext = \translator {
\StaffContext
- barColumnPriority = #0
- marginBreakPriority = #-4
\consists "Mark_engraver";
\consists "Bar_number_engraver";
};
OrchestralPartStaffContext = \translator {
\StaffContext
- barColumnPriority = #0
- marginBreakPriority = #-4
\consists "Mark_engraver";
\consists "Bar_number_engraver";
};
\accepts "PianoStaff";
\accepts "NoteNames";
- clefBreakPriority = #-2
- breathingSignBreakPriority = #-4
+ markVisibilityFunction = #end-of-line-invisible
+ barNumberVisibilityFunction = #end-of-line-invisible
+ marginVisibilityFunction = #begin-of-line-visible
};
\translator { \ScoreContext }
#'Stem_tremolo::beam-width = 1.5 * \quartwidth ;
-#'Clef_item::visibility-lambda = #postbreak-only-visibility
-#'Key_item::visibility-lambda = #postbreak-only-visibility
-#'Breathing_sign::visibility-lambda = #non-postbreak-visibility
+#'Clef_item::visibility-lambda = #begin-of-line-visible
+#'Key_item::visibility-lambda = #begin-of-line-visible
+#'Breathing_sign::visibility-lambda = #begin-of-line-invisible
% catch suspect beam slopes, set slope to zero if
% outer stem is lengthened more than
% 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(\staffspace / 5) by default.
+ 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;
+
+%{
+Horizontal space between centre of notehead and slur.
%}
% OSU: suggested gap = ss / 5;
slur_x_gap = \staffspace / 5.0;
slur_y_free = 0.75 * \staffspace;
slur_x_minimum = 1.5 * \staffspace;
+
+bezier_asymmetry = 1.0;
+bezier_beautiful = 2.0;
+
+% 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;
+
+% 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;
+
+slur_force_blowfit = 0.5;
+slur_beautiful = 0.5;
+
+
%{
-Like beams, slurs often aren't as steep as the notes they encompass.
-This sets the amount of damping.
+ Tie parameters
%}
-% slope damping: keep dy/dx < slur_slope_damping
-slur_slope_damping = 0.3;
-slur_interstaff_slope_damping = 0.6;
-% height damping: keep h/dx < slur_height_damping
-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 * \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;
-slur_thickness = 1.2 * \stafflinethickness;
-
+tie_height_limit_factor = \slur_height_limit_factor;
+tie_ratio = \slur_ratio;
+tie_thickness = \slur_thickness;
tie_x_minimum = \staffspace + \slur_x_minimum;
% OSU: tie gap == slur gap
% length of a tie that's a staffspace high
tie_staffspace_length = 4.0 * \staffspace;
-% ugh: rename to bow (in bezier.cc and fonts.doc too...)
-
-% used to be 1.4 .
-tie_thickness = 1.2 * \stafflinethickness;
tie_staffline_clearance = 2.0 *\tie_thickness;
-%{
- Specifies the maximum height of slurs.
-%}
-slur_height_limit = \staffheight;
-%{
-Specifes the ratio of slur hight to slur width
-to aim for. Default value is 0.3.
-%}
-% 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;
% ugh
notewidth = (\quartwidth + \wholewidth) / 2.0;
;; See documentation of Item::visibility_lambda_
-(define (postbreak-only-visibility d) (if (= d 1) '(#f . #f) '(#t . #t)))
-(define (spanbar-non-postbreak-visibility d) (if (= d -1) '(#t . #t) '(#f . #f)))
-(define (all-visibility d) '(#f . #f))
-(define (non-postbreak-visibility d) (if (= d 1) '(#t . #t) '(#f . #f)))
-(define (non-prebreak-visibility d) (if (= d -1) '(#t . #t) '(#f . #f)))
+(define (begin-of-line-visible d) (if (= d 1) '(#f . #f) '(#t . #t)))
+(define (spanbar-begin-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
+(define (all-visible d) '(#f . #f))
+(define (begin-of-line-invisible d) (if (= d 1) '(#t . #t) '(#f . #f)))
+(define (end-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
;; Score_span_bars are only visible at start of line
;; i.e. if break_dir == RIGHT == 1
-(define Span_bar_engraver-visibility non-postbreak-visibility)
-(define Base_span_bar_engraver-visibility non-postbreak-visibility)
-(define mark-visibility non-prebreak-visibility)
-(define Span_score_bar_engraver-visibility postbreak-only-visibility)
-(define Piano_bar_engraver-visibility postbreak-only-visibility)
-(define Staff_group_bar_engraver-visibility postbreak-only-visibility)
+(define Span_bar_engraver-visibility begin-of-line-invisible)
+(define Base_span_bar_engraver-visibility begin-of-line-invisible)
+(define mark-visibility end-of-line-invisible)
+(define Span_score_bar_engraver-visibility begin-of-line-visible)
+(define Piano_bar_engraver-visibility begin-of-line-visible)
+(define Staff_group_bar_engraver-visibility begin-of-line-visible)
;; Spacing constants for prefatory matter.
;;
;;;;;;;;;;;;;;;;;;; generic output
-(define (translate-atom offset exp)
- exp)
+(define (translate-molecule offset)
+ "")
;;;;;;;;;;;;;;;;;;; TeX output