+1.3.34.jcn1
+===========
+
+* Fixed vertical alignment for all dynamic items and (reluctantly)
+ reinstated old directional behaviour for orphaned dynamics.
+
+* Finished maximumRestCount property.
+
1.3.34
======
1.3.33.hwn2
MAJOR_VERSION=1
MINOR_VERSION=3
PATCH_LEVEL=34
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
a'^\flageolet
\property Voice . textStyle = "roman"
\time 1/2; a2 |
- % \time 3/2; < a1.
- % { s4 \ppp \< s4 \! s4 \fff s4 \> s4 \! s4\ppp} >
+ \time 3/2; < a1.
+ { s4 \ppp \< s4 \! s4 \fff s4 \> s4 \! s4\ppp} >
|
\time 2/4; a2 |
\time 5/4; a1.. |
\score{
-\context Staff \notes\relative c''{
-< a4 c e >
-< r r r >
-\property Staff.maximumRestCount = #3
-< r r r >
-\property Staff.maximumRestCount = #2
-< r r r >
-\property Staff.maximumRestCount = #1
-< r r r >
-\property Staff.maximumRestCount = #0
-< r r r >
-% urg
-r
-}
+\context Staff \notes\relative c''<
+ \context Voice = x {
+ a4
+ r
+ \property Voice.maximumRestCount = #3
+ r
+ \property Staff.maximumRestCount = #2
+ r
+ \property Staff.maximumRestCount = #1
+ r
+ r8 r8
+ c
+ }
+ \context Voice = y {
+ c4
+ r
+ r
+ r
+ r
+ r
+ r
+ }
+ \context Voice = z {
+ e4
+ r
+ r
+ r
+ r
+ r
+ r
+ }
+ >
\paper{
}
\midi{
/*
TODO:
- * fix vertical placement of orphaned items
- * fix padding
+ * padding of orphaned items
+ * direction of orphaned items
*/
class Dynamic_line_spanner : public Spanner
virtual void do_process_music ();
virtual void do_pre_move_processing ();
virtual void do_post_move_processing ();
- virtual void typeset_element (Score_element*);
};
ADD_THIS_TRANSLATOR (Dynamic_engraver);
line_spanner_ = new Dynamic_line_spanner;
assert (pending_column_);
line_spanner_->add_column (pending_column_);
- side_position (line_spanner_).set_axis (Y_AXIS);
announce_element (Score_element_info
(line_spanner_,
text_req_l_ ? text_req_l_ : span_req_l_drul_[START]));
pending_element_arr_.clear ();
}
- if (span_req_l_drul_[START] || text_req_l_)
+ if (span_req_l_drul_[START] || span_req_l_drul_[STOP] || text_req_l_)
last_request_mom_ = now_mom ();
else
- pending_element_arr_.clear ();
+ {
+ for (int i = 0; i < pending_element_arr_.size (); i++)
+ {
+ Score_element* e = pending_element_arr_[i];
+ side_position (e).set_axis (Y_AXIS);
+ side_position (e).add_staff_support ();
+
+ /*
+ UGH UGH
+ */
+ Direction d = directional_element (e).get ();
+ if (!d)
+ {
+ SCM s = get_property ("dynamicDirection");
+ if (!isdir_b (s))
+ s = get_property ("verticalDirection");
+ if (isdir_b (s))
+ d = to_dir (s);
+ directional_element (e).set (d);
+ }
+
+ SCM s = get_property ("dynamicPadding");
+ if (gh_number_p (s))
+ e->set_elt_property ("padding", s);
+ }
+ pending_element_arr_.clear ();
+ }
-
if (text_req_l_)
{
String loud = text_req_l_->text_str_;
text_p_->set_elt_property ("style", gh_str02scm ("dynamic"));
text_p_->set_elt_property ("script-priority",
gh_int2scm (100));
+ if (Direction d=text_req_l_->get_direction ())
+ directional_element (text_p_).set (d);
pending_element_arr_.push (text_p_);
text_p_->set_elt_property ("self-alignment-Y", gh_int2scm (0));
text_p_->add_offset_callback (Side_position_interface::aligned_on_self,
- Y_AXIS);
+ Y_AXIS);
announce_element (Score_element_info (text_p_, text_req_l_));
}
typeset_all ();
}
-
void
Dynamic_engraver::do_removal_processing ()
{
typeset_all ();
if (line_spanner_)
{
+ side_position (line_spanner_).add_staff_support ();
typeset_element (line_spanner_);
line_spanner_ = 0;
}
}
-void
-Dynamic_engraver::typeset_element (Score_element* e)
-{
- side_position (e).add_staff_support ();
- Engraver::typeset_element (e);
-}
-
void
Dynamic_engraver::typeset_all ()
{
* continue through piece */
if (line_spanner_ && last_request_mom_ < now_mom ())
{
+ side_position (line_spanner_).add_staff_support ();
typeset_element (line_spanner_);
line_spanner_ = 0;
}
// meisjes met meisjes
if (!ncol_l_arr.size())
{
-
- /*
- Oeps, nu zie ik 't pas: colommen met noten.
- Het commentaar, dat ik ooit geschreven had: meisjes met meisjes,
- is achterhaald: urg.
-
- */
-
Moment m = rhythmic_head2mom (col2rhythmic_head (rest_l_arr[0]));
int i = 1;
for (; i < rest_l_arr.size (); i++)
int display_count;
SCM s = get_elt_property ("maximum-rest-count");
if (i == rest_l_arr.size ()
- && gh_number_p (s) && gh_int2scm (s) < rest_l_arr.size ())
+ && gh_number_p (s) && gh_scm2int (s) < rest_l_arr.size ())
{
- display_count = gh_int2scm (s);
-#if 0
- /*
- Setting surplus rests to transparent.
- Only really necessary for maximum-rest-count == 0,
- because rests wil be set at exact the same position
- and thus overlap.
- */
- for (i--;i > display_count; i--)
+ display_count = gh_scm2int (s);
+ for (; i > display_count; i--)
col2rhythmic_head (rest_l_arr[i-1])
->set_elt_property ("transparent", SCM_BOOL_T);
-#endif
}
else
display_count = rest_l_arr.size ();
\type "Engraver_group_engraver";
\name Voice;
- dynamicPadding = #2.0
+ dynamicPadding = #10 % urg, in \pt
Generic_property_list = #generic-voice-properties
\consists "Output_property_engraver";
% slurs are never beautiful (no steep slurs)
slur_beautiful = 0.0;
- %%
- %%\translator { \VoiceContext \remove "Dynamic_engraver"; }
-
\translator {
\VoiceContext
\name "VoiceOne";
- %%
- %%\remove "Dynamic_engraver";
-
%%\consists "Line_number_engraver";
verticalDirection = #1
stemVerticalDirection = #1
\HaraKiriStaffContext
instrumentScriptPadding = #55 %% urg, this is in pt
instrScriptPadding = #25 %% urg, this is in pt
+ maximumRestCount = #1
\accepts "VoiceOne";
\accepts "VoiceTwo";
}
\paper {
% slurs are never beautiful (no steep slurs)
slur_beautiful = 0.0;
- \translator {
- \OrchestralPartStaffContext
- instrumentScriptPadding = #55 %% urg, this is in pt
- instrScriptPadding = #25 %% urg, this is in pt
- }
+
\translator {
\VoiceContext
\name "VoiceOne";
\StaffContext
\accepts "VoiceOne";
\accepts "VoiceTwo";
+ instrumentScriptPadding = #55 %% urg, this is in pt
+ instrScriptPadding = #25 %% urg, this is in pt
+ maximumRestCount = #1
}
+ \translator { \OrchestralPartStaffContext }
\translator { \ScoreContext skipBars = ##t }
}
;; (Measured in staff space)
(define space-alist
'(
- (("" "Left_edge_item") . (minimum-space -15.0))
+ (("" "Left_edge_item") . (extra-space -15.0))
(("" "Clef_item") . (minimum-space 1.0))
(("" "Staff_bar") . (minimum-space 0.0))
(("" "Clef_item") . (minimum-space 1.0))