CVSROOT: /cvsroot/lilypond
Module name: lilypond
Branch:
Changes by: Han-Wen Nienhuys <[EMAIL PROTECTED]> 05/05/05 23:45:30
Modified files:
. : ChangeLog
Documentation/topdocs: NEWS.tely
Documentation/user: basic-notation.itely
input/regression: staff-halfway.ly
input/test : ossia.ly
lily : clef-engraver.cc ledger-line-engraver.cc
staff-symbol-engraver.cc
system-start-delimiter.cc timing-engraver.cc
ly : declarations-init.ly engraver-init.ly
property-init.ly
scm : define-context-properties.scm
define-music-types.scm
Log message:
* Documentation/topdocs/NEWS.tely (Top): document new feature.
* Documentation/user/basic-notation.itely (Staff symbol): document
start/stop staff. Reference to ossia.ly
* input/test/ossia.ly: new example using stop and startStaff.
* lily/timing-engraver.cc: remove Timing_engraver::initialize(),
in other words, don't create "|" barline at start of the score.
(start_translation_timestep): don't set whichBar for start of score.
* input/regression/staff-halfway.ly: use new functionality.
* lily/staff-symbol-engraver.cc (try_music): take StaffSpanEvents,
start and stop staff based on events.
* scm/define-music-types.scm (music-descriptions): add StaffSpanEvent
* ly/declarations-init.ly (startStaff, stopStaff): new identifiers.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.3554&tr2=1.3555&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/topdocs/NEWS.tely.diff?tr1=1.33&tr2=1.34&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/basic-notation.itely.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/input/regression/staff-halfway.ly.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/input/test/ossia.ly.diff?tr1=1.57&tr2=1.58&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/clef-engraver.cc.diff?tr1=1.121&tr2=1.122&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/ledger-line-engraver.cc.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/staff-symbol-engraver.cc.diff?tr1=1.46&tr2=1.47&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/system-start-delimiter.cc.diff?tr1=1.93&tr2=1.94&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/timing-engraver.cc.diff?tr1=1.58&tr2=1.59&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ly/declarations-init.ly.diff?tr1=1.85&tr2=1.86&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ly/engraver-init.ly.diff?tr1=1.230&tr2=1.231&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ly/property-init.ly.diff?tr1=1.70&tr2=1.71&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-context-properties.scm.diff?tr1=1.41&tr2=1.42&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-music-types.scm.diff?tr1=1.53&tr2=1.54&r1=text&r2=text
Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.3554 lilypond/ChangeLog:1.3555
--- lilypond/ChangeLog:1.3554 Thu May 5 22:13:57 2005
+++ lilypond/ChangeLog Thu May 5 23:45:27 2005
@@ -1,3 +1,25 @@
+2005-05-06 Han-Wen Nienhuys <[EMAIL PROTECTED]>
+
+ * Documentation/topdocs/NEWS.tely (Top): document new feature.
+
+ * Documentation/user/basic-notation.itely (Staff symbol): document
+ start/stop staff. Reference to ossia.ly
+
+ * input/test/ossia.ly: new example using stop and startStaff.
+
+ * lily/timing-engraver.cc: remove Timing_engraver::initialize(),
+ in other words, don't create "|" barline at start of the score.
+ (start_translation_timestep): don't set whichBar for start of score.
+
+ * input/regression/staff-halfway.ly: use new functionality.
+
+ * lily/staff-symbol-engraver.cc (try_music): take StaffSpanEvents,
+ start and stop staff based on events.
+
+ * scm/define-music-types.scm (music-descriptions): add StaffSpanEvent
+
+ * ly/declarations-init.ly (startStaff, stopStaff): new identifiers.
+
2005-05-05 Han-Wen Nienhuys <[EMAIL PROTECTED]>
* Documentation/user/programming-interface.itely (How markups work
Index: lilypond/Documentation/topdocs/NEWS.tely
diff -u lilypond/Documentation/topdocs/NEWS.tely:1.33
lilypond/Documentation/topdocs/NEWS.tely:1.34
--- lilypond/Documentation/topdocs/NEWS.tely:1.33 Sat Apr 30 19:47:14 2005
+++ lilypond/Documentation/topdocs/NEWS.tely Thu May 5 23:45:29 2005
@@ -34,6 +34,16 @@
@itemize @bullet
@item
+Staves may be stopped and started halfway a line, e.g.
+
[EMAIL PROTECTED],fragment,verbatim]
+b4 b \stopStaff b \startStaff b
[EMAIL PROTECTED] lilypond
+
[EMAIL PROTECTED]
+This feature has been sponsored by Hans Forbrich.
+
[EMAIL PROTECTED]
Grid lines, vertical lines synchronized with notes, can be drawn across
staves, by adding suitable engravers.
An example is in @inputfileref{input/regression,grid-lines.ly},
Index: lilypond/Documentation/user/basic-notation.itely
diff -u lilypond/Documentation/user/basic-notation.itely:1.13
lilypond/Documentation/user/basic-notation.itely:1.14
--- lilypond/Documentation/user/basic-notation.itely:1.13 Tue May 3
12:17:03 2005
+++ lilypond/Documentation/user/basic-notation.itely Thu May 5 23:45:29 2005
@@ -766,6 +766,31 @@
system, these lines are drawn using a separate layout object called
staff symbol.
+The staff symbol may be tuned in the number, thickness and distannce
+of lines, using properties. This is demonstrated in the example files
[EMAIL PROTECTED]/@/test,staff@/-lines@/.ly},
[EMAIL PROTECTED]/@/test,staff@/-size@/.ly}.
+
+In addition, staves may be started and stopped at will. This is done
+with @code{\startStaff} and @code{\stopStaff}.
+
[EMAIL PROTECTED],relative=2,fragment]
+b4 b
+\override Staff.StaffSymbol #'line-count = 2
+\stopStaff \startStaff
+b b
+\revert Staff.StaffSymbol #'line-count
+\stopStaff \startStaff
+b b
[EMAIL PROTECTED] lilypond
+
+In combination with Frenched staves, this may be used to typeset ossia
+sections. An example is in @inputfileref{input/@/test@/,ossia.ly},
+shown here
+
[EMAIL PROTECTED] ossia
+
[EMAIL PROTECTED]
@cindex staff lines, setting number of
@cindex staff lines, setting thickness of
@@ -774,16 +799,12 @@
@seealso
-Program reference: @internalsref{StaffSymbol}.
+Program reference: @internalsref{StaffSymbol}, @internalsref{StaffSpanEvent}.
Examples: @inputfileref{input/@/test,staff@/-lines@/.ly},
[EMAIL PROTECTED]/@/test@/,ossia.ly},
@inputfileref{input/@/test,staff@/-size@/.ly}.
[EMAIL PROTECTED]
-
-If a staff is ended halfway a piece, the staff symbol may not end
-exactly on the bar line.
-
@node Key signature
@subsection Key signature
Index: lilypond/input/regression/staff-halfway.ly
diff -u lilypond/input/regression/staff-halfway.ly:1.9
lilypond/input/regression/staff-halfway.ly:1.10
--- lilypond/input/regression/staff-halfway.ly:1.9 Sat Oct 30 20:55:16 2004
+++ lilypond/input/regression/staff-halfway.ly Thu May 5 23:45:29 2005
@@ -1,13 +1,15 @@
+\header {
+ texidoc = "Staves can be started and stopped at command. "
+}
-\header { texidoc = " Staves starting and ending halfway include clefs
- and bar lines. " }
+\version "2.5.23"
-\version "2.4.0"
+\paper {
+ raggedright = ##t
+}
-\score {
- \new StaffGroup \relative c'' <<
- \new Staff { c4 c c c \bar "||" c c c c }
- { \skip 4 \new Staff { c c c } }
- >>
- \layout {}
- }
+\relative c'' {
+ b b \stopStaff b b \startStaff
+ \clef bass
+ c,, c
+}
Index: lilypond/input/test/ossia.ly
diff -u lilypond/input/test/ossia.ly:1.57 lilypond/input/test/ossia.ly:1.58
--- lilypond/input/test/ossia.ly:1.57 Sat Oct 30 20:55:16 2004
+++ lilypond/input/test/ossia.ly Thu May 5 23:45:29 2005
@@ -1,48 +1,36 @@
-\header { texidoc = "A temporary ossia in an instrumental part may
- be printed using a separate, short staff. A simpler solution is
- also given: instantiate a full staff, and let
- @code{RemoveEmptyStaffContext} take out the unused parts.
-" }
-
-\version "2.4.0"
-
-\score {
- \relative c''
- \new StaffGroup \with {
- \remove "System_start_delimiter_engraver"
- \override SpanBar #'glyph = #":"
- } <<
-
- %% solution 1
- { c1 c1
- <<
- { c1 c1 }
- \new Staff \with {
- \remove "Time_signature_engraver"
- fontSize = #-2
- \override StaffSymbol #'staff-space = #(magstep -2)
- } {
- c,4^"ossia" es f fis g1
- }
- >>
- c1 \break c c }
-
- %% solution 2
- \new Staff \with {
- fontSize = #-2
- \override StaffSymbol #'staff-space = #(magstep -2)
-
- } { R1*2 c,4^"ossia" es f fis g1 R1 * 3 }
- >>
-
-
- \layout {
- raggedright= ##t
- \context {\RemoveEmptyStaffContext}
- \context {
- \Score
- \remove System_start_delimiter_engraver
- }
- }
-}
+\header { texidoc = "Ossia fragments can be done with starting and
+stopping staves. " }
+
+\version "2.5.23"
+\paper { raggedright = ##t }
+
+<<
+ \new Staff \with
+ {
+ \remove "Time_signature_engraver"
+ fontSize = #-2
+ \override StaffSymbol #'staff-space = #(magstep -2)
+ firstClef = ##f
+ }
+ \relative c'' {
+ \stopStaff
+ \skip 2
+
+ \startStaff
+ \clef treble
+ bes8[^"ossia" g bes g]
+ \stopStaff
+
+ s2
+
+ \startStaff
+ f8 d g4
+ }
+ \new Staff \relative
+ {
+ \time 2/4
+ c4 c g' g a a g2
+ }
+
+>>
Index: lilypond/lily/clef-engraver.cc
diff -u lilypond/lily/clef-engraver.cc:1.121
lilypond/lily/clef-engraver.cc:1.122
--- lilypond/lily/clef-engraver.cc:1.121 Wed Mar 16 19:19:15 2005
+++ lilypond/lily/clef-engraver.cc Thu May 5 23:45:29 2005
@@ -131,16 +131,18 @@
SCM octavation = get_property ("clefOctavation");
SCM force_clef = get_property ("forceClef");
- if (clefpos == SCM_EOL
- || scm_equal_p (glyph, prev_glyph_) == SCM_BOOL_F
- || scm_equal_p (clefpos, prev_cpos_) == SCM_BOOL_F
- || scm_equal_p (octavation, prev_octavation_) == SCM_BOOL_F
- || to_boolean (force_clef))
+ if (clefpos == SCM_EOL
+ || scm_equal_p (glyph, prev_glyph_) == SCM_BOOL_F
+ || scm_equal_p (clefpos, prev_cpos_) == SCM_BOOL_F
+ || scm_equal_p (octavation, prev_octavation_) == SCM_BOOL_F
+ || to_boolean (force_clef))
{
set_glyph ();
- create_clef ();
+ if (prev_cpos_ != SCM_BOOL_F || to_boolean (get_property ("firstClef")))
+ create_clef ();
- clef_->set_property ("non-default", SCM_BOOL_T);
+ if (clef_)
+ clef_->set_property ("non-default", SCM_BOOL_T);
prev_cpos_ = clefpos;
prev_glyph_ = glyph;
Index: lilypond/lily/ledger-line-engraver.cc
diff -u lilypond/lily/ledger-line-engraver.cc:1.12
lilypond/lily/ledger-line-engraver.cc:1.13
--- lilypond/lily/ledger-line-engraver.cc:1.12 Thu Mar 10 14:36:13 2005
+++ lilypond/lily/ledger-line-engraver.cc Thu May 5 23:45:29 2005
@@ -10,6 +10,9 @@
#include "spanner.hh"
#include "engraver.hh"
+/*
+ TODO: should sync with Staff_symbol_engraver.
+*/
class Ledger_line_engraver : public Engraver
{
Spanner *span_;
Index: lilypond/lily/staff-symbol-engraver.cc
diff -u lilypond/lily/staff-symbol-engraver.cc:1.46
lilypond/lily/staff-symbol-engraver.cc:1.47
--- lilypond/lily/staff-symbol-engraver.cc:1.46 Wed Mar 16 19:19:15 2005
+++ lilypond/lily/staff-symbol-engraver.cc Thu May 5 23:45:30 2005
@@ -6,29 +6,8 @@
(c) 1997--2005 Han-Wen Nienhuys <[EMAIL PROTECTED]>
*/
-#include "score.hh"
-#include "paper-column.hh"
-#include "output-def.hh"
-#include "side-position-interface.hh"
-#include "engraver.hh"
-#include "moment.hh"
-
-/**
- Manage the staff symbol.
-*/
-class Staff_symbol_engraver : public Engraver
-{
-public:
- TRANSLATOR_DECLARATIONS (Staff_symbol_engraver);
-
-protected:
- Spanner *span_;
-
- virtual ~Staff_symbol_engraver ();
- virtual void acknowledge_grob (Grob_info);
- virtual void finalize ();
- virtual void process_music ();
-};
+#include "staff-symbol-engraver.hh"
+#include "spanner.hh"
Staff_symbol_engraver::~Staff_symbol_engraver ()
{
@@ -37,77 +16,105 @@
Staff_symbol_engraver::Staff_symbol_engraver ()
{
+ first_start_ = true;
span_ = 0;
+ span_events_[LEFT] = 0;
+ span_events_[RIGHT] = 0;
}
-void
-Staff_symbol_engraver::process_music ()
+bool
+Staff_symbol_engraver::try_music (Music *music)
{
- if (!span_)
+ Direction d = to_dir (music->get_property ("span-direction"));
+ if (d)
{
- span_ = make_spanner ("StaffSymbol", SCM_EOL);
-
- span_->set_bound (LEFT, unsmob_grob (get_property
("currentCommandColumn")));
+ span_events_[d] = music;
+ return true;
}
+
+ return false;
}
void
-Staff_symbol_engraver::finalize ()
+Staff_symbol_engraver::process_music ()
{
- if (span_)
+ if (span_events_[STOP])
{
- span_->set_bound (RIGHT, unsmob_grob (get_property
("currentCommandColumn")));
+ finished_span_ = span_;
+ span_ = 0;
}
- span_ = 0;
+
+ if (span_events_[START])
+ start_spanner ();
}
+
void
-Staff_symbol_engraver::acknowledge_grob (Grob_info s)
+Staff_symbol_engraver::initialize ()
{
- s.grob_->set_property ("staff-symbol", span_->self_scm ());
+ start_spanner ();
}
-ADD_TRANSLATOR (Staff_symbol_engraver,
- /* descr */ "Create the constellation of five (default) "
- "staff lines.",
- /* creats*/ "StaffSymbol",
- /* accepts */ "",
- /* acks */ "grob-interface",
- /* reads */ "",
- /* write */ "");
-
-/****************************************************************/
+void
+Staff_symbol_engraver::start_spanner ()
+{
+ if (!span_)
+ {
+ span_ = make_spanner ("StaffSymbol", SCM_EOL);
+ }
+}
-class Tab_staff_symbol_engraver : public Staff_symbol_engraver
+void
+Staff_symbol_engraver::stop_spanner ()
{
-public:
- TRANSLATOR_DECLARATIONS (Tab_staff_symbol_engraver);
-protected:
- virtual void process_music ();
-};
+ if (finished_span_ && !finished_span_->get_bound (RIGHT))
+ {
+ finished_span_->set_bound (RIGHT, unsmob_grob (get_property
("currentCommandColumn")));
+ }
+ finished_span_ = 0;
+}
void
-Tab_staff_symbol_engraver::process_music ()
+Staff_symbol_engraver::stop_translation_timestep ()
{
- bool init = !span_;
- Staff_symbol_engraver::process_music ();
- if (init)
+ if ((span_events_[START] || first_start_)
+ && span_
+ && !span_->get_bound (LEFT))
{
- int k = scm_ilength (get_property ("stringTunings"));
- if (k >= 0)
- span_->set_property ("line-count", scm_int2num (k));
+ span_->set_bound (LEFT, unsmob_grob (get_property
("currentCommandColumn")));
+ first_start_ = false;
}
+
+ span_events_[START] = 0;
+ span_events_[STOP] = 0;
+ stop_spanner ();
}
-Tab_staff_symbol_engraver::Tab_staff_symbol_engraver ()
+void
+Staff_symbol_engraver::finalize ()
{
+ finished_span_ = span_;
+ span_ = 0;
+ stop_spanner ();
}
-ADD_TRANSLATOR (Tab_staff_symbol_engraver,
- /* descr */ "Create a staff-symbol, but look at stringTunings
for the number of lines."
+void
+Staff_symbol_engraver::acknowledge_grob (Grob_info s)
+{
+
+ /*
+ Perhaps should try to take SeparationItem as bound of the staff
+ symbol?
+ */
+ if (span_)
+ s.grob_->set_property ("staff-symbol", span_->self_scm ());
+}
+
+ADD_TRANSLATOR (Staff_symbol_engraver,
+ /* descr */ "Create the constellation of five (default) "
"staff lines.",
/* creats*/ "StaffSymbol",
- /* accepts */ "",
+ /* accepts */ "staff-span-event",
/* acks */ "grob-interface",
- /* reads */ "stringTunings",
+ /* reads */ "",
/* write */ "");
Index: lilypond/lily/system-start-delimiter.cc
diff -u lilypond/lily/system-start-delimiter.cc:1.93
lilypond/lily/system-start-delimiter.cc:1.94
--- lilypond/lily/system-start-delimiter.cc:1.93 Wed May 4 10:35:56 2005
+++ lilypond/lily/system-start-delimiter.cc Thu May 5 23:45:30 2005
@@ -17,6 +17,7 @@
#include "all-font-metrics.hh"
#include "staff-symbol-referencer.hh"
#include "lookup.hh"
+#include "item.hh"
Stencil
System_start_delimiter::staff_bracket (Grob *me, Real height)
@@ -71,11 +72,13 @@
SCM
System_start_delimiter::after_line_breaking (SCM smob)
{
- Grob *me = unsmob_grob (smob);
+ Spanner *me = dynamic_cast<Spanner *> (unsmob_grob (smob));
+
SCM gl = me->get_property ("glyph");
if (ly_c_equal_p (gl, scm_makfrom0str ("bar-line")))
{
int count = 0;
+ Paper_column *left_column = me->get_bound (LEFT)->get_column ();
/*
Get all coordinates, to trigger Hara kiri.
@@ -84,8 +87,13 @@
Grob *common = common_refpoint_of_list (elts, me, Y_AXIS);
for (SCM s = elts; scm_is_pair (s); s = scm_cdr (s))
{
- Interval v = unsmob_grob (scm_car (s))->extent (common, Y_AXIS);
-
+ Spanner *staff = dynamic_cast<Spanner*> (unsmob_grob (scm_car (s)));
+ if (!staff ||
+ staff->get_bound (LEFT)->get_column () != left_column)
+ continue;
+
+ Interval v = staff->extent (common, Y_AXIS);
+
if (!v.is_empty ())
count++;
}
Index: lilypond/lily/timing-engraver.cc
diff -u lilypond/lily/timing-engraver.cc:1.58
lilypond/lily/timing-engraver.cc:1.59
--- lilypond/lily/timing-engraver.cc:1.58 Thu Mar 10 14:36:12 2005
+++ lilypond/lily/timing-engraver.cc Thu May 5 23:45:30 2005
@@ -12,17 +12,15 @@
#include "engraver.hh"
#include "grob.hh"
-/**
- Do time bookkeeping
-*/
+
+
class Timing_engraver : public Timing_translator, public Engraver
{
protected:
- /* Needed to know whether we're advancing in grace notes, or not. */
+ /* Need to know whether we're advancing in grace notes, or not. */
Moment last_moment_;
virtual void start_translation_timestep ();
- virtual void initialize ();
virtual void process_music ();
virtual void stop_translation_timestep ();
@@ -30,28 +28,26 @@
TRANSLATOR_DECLARATIONS (Timing_engraver);
};
+ADD_TRANSLATOR (Timing_engraver,
+ /* descr */ " Responsible for synchronizing timing information
from staves. "
+ "Normally in @code{Score}. In order to create polyrhythmic
music, "
+ "this engraver should be removed from @code{Score} and placed
in "
+ "@code{Staff}. "
+ "\n\nThis engraver adds the alias @code{Timing} to its
containing context.",
+ /* creats*/ "",
+ /* accepts */ "",
+ /* acks */ "",
+ /* reads */ "automaticBars whichBar barAlways defaultBarType "
+ "skipBars timing measureLength measurePosition
currentBarNumber",
+ /* write */ "");
+
+
Timing_engraver::Timing_engraver ()
{
last_moment_.main_part_ = Rational (-1);
}
void
-Timing_engraver::initialize ()
-{
- Timing_translator::initialize ();
-
- SCM which = get_property ("whichBar");
- Moment now = now_mom ();
-
- /* Set the first bar of the score? */
- if (!scm_is_string (which))
- which = (now.main_part_ || now.main_part_ == last_moment_.main_part_)
- ? SCM_EOL : scm_makfrom0str ("|");
-
- context ()->set_property ("whichBar", which);
-}
-
-void
Timing_engraver::process_music ()
{
Timing_translator::process_music ();
@@ -92,7 +88,8 @@
{
SCM always = get_property ("barAlways");
- if (start_of_measure || (to_boolean (always)))
+ if ((start_of_measure && last_moment_.main_part_ >= Moment (0))
+ || to_boolean (always))
{
/* should this work, or be junked? See input/bugs/no-bars.ly */
which = get_property ("defaultBarType");
@@ -109,15 +106,3 @@
context ()->set_property ("whichBar", SCM_EOL);
last_moment_ = now_mom ();
}
-
-ADD_TRANSLATOR (Timing_engraver,
- /* descr */ " Responsible for synchronizing timing information
from staves. "
- "Normally in @code{Score}. In order to create polyrhythmic
music, "
- "this engraver should be removed from @code{Score} and placed
in "
- "@code{Staff}. "
- "\n\nThis engraver adds the alias @code{Timing} to its
containing context.",
- /* creats*/ "",
- /* accepts */ "",
- /* acks */ "",
- /* reads */ "automaticBars whichBar barAlways defaultBarType
skipBars timing measureLength measurePosition currentBarNumber",
- /* write */ "");
Index: lilypond/ly/declarations-init.ly
diff -u lilypond/ly/declarations-init.ly:1.85
lilypond/ly/declarations-init.ly:1.86
--- lilypond/ly/declarations-init.ly:1.85 Mon Apr 4 23:36:48 2005
+++ lilypond/ly/declarations-init.ly Thu May 5 23:45:30 2005
@@ -39,6 +39,8 @@
noBreak = #(make-event-chord (list (make-penalty-music 10001 0)))
pageBreak = #(make-event-chord (list (make-penalty-music -10001 -10001)))
noPageBreak = #(make-event-chord (list (make-penalty-music 0 10001)))
+stopStaff = #(make-event-chord (list (make-span-event 'StaffSpanEvent STOP)))
+startStaff = #(make-event-chord (list (make-span-event 'StaffSpanEvent START)))
%
Index: lilypond/ly/engraver-init.ly
diff -u lilypond/ly/engraver-init.ly:1.230 lilypond/ly/engraver-init.ly:1.231
--- lilypond/ly/engraver-init.ly:1.230 Tue May 3 22:33:59 2005
+++ lilypond/ly/engraver-init.ly Thu May 5 23:45:30 2005
@@ -464,6 +464,7 @@
clefGlyph = #"clefs.G"
clefPosition = #-2
middleCPosition = #-6
+ firstClef = ##t
defaultBarType = #"|"
barNumberVisibility = #default-bar-number-visibility
Index: lilypond/ly/property-init.ly
diff -u lilypond/ly/property-init.ly:1.70 lilypond/ly/property-init.ly:1.71
--- lilypond/ly/property-init.ly:1.70 Tue May 3 11:06:05 2005
+++ lilypond/ly/property-init.ly Thu May 5 23:45:30 2005
@@ -10,18 +10,18 @@
slurDown = \override Slur #'direction = #-1
slurNeutral = \revert Slur #'direction
-% There's also dash, but setting dash period/length should be fixed.
+%% There's also dash, but setting dash period/length should be fixed.
slurDashed = {
- \override Slur #'dash-period = #0.75
- \override Slur #'dash-fraction = #0.4
+ \override Slur #'dash-period = #0.75
+ \override Slur #'dash-fraction = #0.4
}
slurDotted = {
- \override Slur #'dash-period = #0.75
- \override Slur #'dash-fraction = #0.1
+ \override Slur #'dash-period = #0.75
+ \override Slur #'dash-fraction = #0.1
}
slurSolid = {
- \revert Slur #'dash-period
- \revert Slur #'dash-fraction
+ \revert Slur #'dash-period
+ \revert Slur #'dash-fraction
}
@@ -42,9 +42,9 @@
tieSolid = \revert Tie #'dashed
setEasyHeads = \sequential {
- \override NoteHead #'print-function = #Note_head::brew_ez_stencil
- \override NoteHead #'Y-extent-callback = #'()
- \override NoteHead #'X-extent-callback = #'()
+ \override NoteHead #'print-function = #Note_head::brew_ez_stencil
+ \override NoteHead #'Y-extent-callback = #'()
+ \override NoteHead #'X-extent-callback = #'()
}
aikenHeads = \set shapeNoteStyles = ##(do re mi fa #f la ti)
@@ -91,22 +91,22 @@
tiny =
- \set fontSize = #-2
+\set fontSize = #-2
small =
- \set fontSize = #-1
+\set fontSize = #-1
normalsize = {
- \set fontSize = #0
+ \set fontSize = #0
}
-% End the incipit and print a ``normal line start''.
+%% End the incipit and print a ``normal line start''.
endincipit = \context Staff {
- \partial 16 s16 % Hack to handle e.g. \bar ".|" \endincipit
- \once \override Staff.Clef #'full-size-change = ##t
- \once \override Staff.Clef #'non-default = ##t
- \bar ""
+ \partial 16 s16 % Hack to handle e.g. \bar ".|" \endincipit
+ \once \override Staff.Clef #'full-size-change = ##t
+ \once \override Staff.Clef #'non-default = ##t
+ \bar ""
}
autoBeamOff = \set autoBeaming = ##f
Index: lilypond/scm/define-context-properties.scm
diff -u lilypond/scm/define-context-properties.scm:1.41
lilypond/scm/define-context-properties.scm:1.42
--- lilypond/scm/define-context-properties.scm:1.41 Thu Apr 21 18:50:46 2005
+++ lilypond/scm/define-context-properties.scm Thu May 5 23:45:30 2005
@@ -210,6 +210,8 @@
determines where fingerings are put relative to the chord being
fingered.")
+ (firstClef ,boolean? "If true, create a new clef when starting a
+staff.")
(forceClef ,boolean? "Show clef symbol, even if it has not
changed. Only active for the first clef after the property is set, not
for the full staff.")
Index: lilypond/scm/define-music-types.scm
diff -u lilypond/scm/define-music-types.scm:1.53
lilypond/scm/define-music-types.scm:1.54
--- lilypond/scm/define-music-types.scm:1.53 Tue Apr 12 22:49:25 2005
+++ lilypond/scm/define-music-types.scm Thu May 5 23:45:30 2005
@@ -176,6 +176,18 @@
(internal-class-name . "Event")
(types . (general-music extender-event event))
))
+
+
+ (EventChord
+ . (
+ (description . "Internally used to group a set of events.")
+ (internal-class-name . "Music")
+ (iterator-ctor . ,Event_chord_iterator::constructor)
+ (length-callback . ,Music_sequence::maximum_length_callback)
+ (to-relative-callback . ,Music_sequence::event_chord_relative_callback)
+ (types . (general-music event-chord simultaneous-music))
+ ))
+
(FingerEvent
. (
(description . "Specify what finger to use for this note.")
@@ -310,6 +322,19 @@
(types . (general-music event rhythmic-event multi-measure-rest-event))
))
+ (MultiMeasureRestMusicGroup
+ . (
+ (description . "Like sequential-music, but specifically intended
+to group start-mmrest, skip, stop-mmrest sequence.
+
+Syntax @code{R2.*5} for 5 measures in 3/4 time.")
+ (internal-class-name . "Music")
+ (length-callback . ,Music_sequence::cumulative_length_callback)
+ (start-callback . ,Music_sequence::first_start_callback)
+ (iterator-ctor . ,Sequential_music_iterator::constructor)
+ (types . (general-music sequential-music))
+ ))
+
(MultiMeasureTextEvent
. (
(description . "Texts on mm rests.
@@ -335,6 +360,19 @@
(types . (general-music event note-event rhythmic-event melodic-event))
))
+ (OutputPropertySetMusic
+ . (
+ (description . "Set grob properties in objects
+individually.
+
+Syntax @code{\\outputproperty @var{predicate} @var{prop}
+= @var{val}}.")
+
+ (internal-class-name . "Music")
+ (iterator-ctor . ,Output_property_music_iterator::constructor)
+ (types . (general-music layout-instruction))
+ ))
+
(OverrideProperty
. (
(description . "Extend the definition of a graphical object.
@@ -458,19 +496,6 @@
(iterator-ctor . ,Sequential_music_iterator::constructor)
(types . (general-music sequential-music))
))
-
- (MultiMeasureRestMusicGroup
- . (
- (description . "Like sequential-music, but specifically intended
-to group start-mmrest, skip, stop-mmrest sequence.
-
-Syntax @code{R2.*5} for 5 measures in 3/4 time.")
- (internal-class-name . "Music")
- (length-callback . ,Music_sequence::cumulative_length_callback)
- (start-callback . ,Music_sequence::first_start_callback)
- (iterator-ctor . ,Sequential_music_iterator::constructor)
- (types . (general-music sequential-music))
- ))
(SoloOneEvent
. (
@@ -517,7 +542,13 @@
(internal-class-name . "Event")
(types . (general-music span-event slur-event))
))
-
+
+ (StaffSpanEvent
+ . ((description . "Start or stop a staff symbol.")
+ (internal-class-name . "Event")
+ (types . (general-music event span-event staff-span-event))
+ ))
+
(StartPlayingEvent
. (
(description . "Used internally to signal beginning of notes.")
@@ -526,19 +557,6 @@
(types . (general-music event start-playing-event))
))
- (OutputPropertySetMusic
- . (
- (description . "Set grob properties in objects
-individually.
-
-Syntax @code{\\outputproperty @var{predicate} @var{prop}
-= @var{val}}.")
-
- (internal-class-name . "Music")
- (iterator-ctor . ,Output_property_music_iterator::constructor)
- (types . (general-music layout-instruction))
- ))
-
(TextSpanEvent
. (
(description . "Start a text spanner like 8va.....|")
@@ -598,17 +616,6 @@
(internal-class-name . "Music_wrapper")
(types . (music-wrapper-music general-music relative-octave-music))
))
-
- (EventChord
- . (
- (description . "Internally used to group a set of events.")
- (internal-class-name . "Music")
- (iterator-ctor . ,Event_chord_iterator::constructor)
- (length-callback . ,Music_sequence::maximum_length_callback)
- (to-relative-callback . ,Music_sequence::event_chord_relative_callback)
- (types . (general-music event-chord simultaneous-music))
- ))
-
(ScriptEvent
. (
(description . "Add an articulation mark to a note. ")
_______________________________________________
Lilypond-cvs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-cvs