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 Lilypond-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-cvs