CVSROOT: /cvsroot/lilypond Module name: lilypond Branch: Changes by: Han-Wen Nienhuys <[EMAIL PROTECTED]> 05/07/08 22:16:28
Modified files: . : ChangeLog Documentation/user: advanced-notation.itely lily : accidental-engraver.cc chord-tremolo-engraver.cc music.cc stem-engraver.cc lily/include : music.hh scm : define-grobs.scm lily.scm part-combiner.scm Added files: scm : autochange.scm Log message: * lily/include/music.hh (class Music): remove Music::duration_log() * lily/stem-engraver.cc (make_stem): take duration log from event. * lily/chord-tremolo-engraver.cc: don't ack note-head-interface. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.3857&tr2=1.3858&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/advanced-notation.itely.diff?tr1=1.39&tr2=1.40&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/accidental-engraver.cc.diff?tr1=1.98&tr2=1.99&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/chord-tremolo-engraver.cc.diff?tr1=1.80&tr2=1.81&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/music.cc.diff?tr1=1.133&tr2=1.134&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/stem-engraver.cc.diff?tr1=1.103&tr2=1.104&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/music.hh.diff?tr1=1.72&tr2=1.73&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/autochange.scm?rev=1.1 http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-grobs.scm.diff?tr1=1.209&tr2=1.210&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/lily.scm.diff?tr1=1.368&tr2=1.369&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/part-combiner.scm.diff?tr1=1.43&tr2=1.44&r1=text&r2=text Patches: Index: lilypond/ChangeLog diff -u lilypond/ChangeLog:1.3857 lilypond/ChangeLog:1.3858 --- lilypond/ChangeLog:1.3857 Fri Jul 8 21:34:52 2005 +++ lilypond/ChangeLog Fri Jul 8 22:16:27 2005 @@ -1,4 +1,14 @@ +2005-07-09 Han-Wen Nienhuys <[EMAIL PROTECTED]> + + * lily/include/music.hh (class Music): remove Music::duration_log() + + * lily/stem-engraver.cc (make_stem): take duration log from event. + + * lily/chord-tremolo-engraver.cc: don't ack note-head-interface. + 2005-07-08 Han-Wen Nienhuys <[EMAIL PROTECTED]> + + * scm/lily.scm (ly:load): load autochange.scm * Documentation/user/tutorial.itely (Running LilyPond for the first time): remove reference to DVI/TeX Index: lilypond/Documentation/user/advanced-notation.itely diff -u lilypond/Documentation/user/advanced-notation.itely:1.39 lilypond/Documentation/user/advanced-notation.itely:1.40 --- lilypond/Documentation/user/advanced-notation.itely:1.39 Fri Jul 8 18:08:24 2005 +++ lilypond/Documentation/user/advanced-notation.itely Fri Jul 8 22:16:27 2005 @@ -1716,7 +1716,7 @@ Trills that should be executed on an explicitly specified pitch can be typeset with the command @code{pitchedTrill}, [EMAIL PROTECTED],verbatim] [EMAIL PROTECTED],verbatim,fragment] \pitchedTrill c'4\startTrillSpan fis f'\stopTrillSpan @end lilypond Index: lilypond/lily/accidental-engraver.cc diff -u lilypond/lily/accidental-engraver.cc:1.98 lilypond/lily/accidental-engraver.cc:1.99 --- lilypond/lily/accidental-engraver.cc:1.98 Sun May 8 23:30:50 2005 +++ lilypond/lily/accidental-engraver.cc Fri Jul 8 22:16:27 2005 @@ -489,7 +489,6 @@ || !ly_c_equal_p (info.grob ()->get_property ("style"), ly_symbol2scm ("harmonic"))) { - Accidental_entry entry; entry.head_ = info.grob (); entry.origin_trans_ = dynamic_cast<Engraver *> (info.origin_translator ()); Index: lilypond/lily/chord-tremolo-engraver.cc diff -u lilypond/lily/chord-tremolo-engraver.cc:1.80 lilypond/lily/chord-tremolo-engraver.cc:1.81 --- lilypond/lily/chord-tremolo-engraver.cc:1.80 Sun May 8 23:30:50 2005 +++ lilypond/lily/chord-tremolo-engraver.cc Fri Jul 8 22:16:27 2005 @@ -13,7 +13,6 @@ #include "engraver-group-engraver.hh" #include "warn.hh" #include "misc.hh" -#include "note-head.hh" #include "spanner.hh" #include "item.hh" #include "chord-tremolo-iterator.hh" @@ -170,7 +169,9 @@ } } else if (repeat_ - && flags_ && !body_is_sequential_ && Stem::has_interface (info.grob ())) + && flags_ + && !body_is_sequential_ + && Stem::has_interface (info.grob ())) { stem_tremolo_ = make_item ("StemTremolo", repeat_->self_scm ()); stem_tremolo_->set_property ("flag-count", @@ -210,6 +211,6 @@ /* descr */ "Generates beams for tremolo repeats.", /* creats*/ "Beam", /* accepts */ "repeated-music", - /* acks */ "stem-interface note-head-interface", + /* acks */ "stem-interface", /* reads */ "", /* write */ ""); Index: lilypond/lily/include/music.hh diff -u lilypond/lily/include/music.hh:1.72 lilypond/lily/include/music.hh:1.73 --- lilypond/lily/include/music.hh:1.72 Thu Mar 10 14:36:12 2005 +++ lilypond/lily/include/music.hh Fri Jul 8 22:16:28 2005 @@ -29,7 +29,6 @@ void internal_set_property (SCM, SCM val); SCM get_property_alist (bool mutble) const; bool internal_is_music_type (SCM) const; - int duration_log () const; DECLARE_SCHEME_CALLBACK (relative_callback, (SCM, SCM)); Pitch to_relative_octave (Pitch); Index: lilypond/lily/music.cc diff -u lilypond/lily/music.cc:1.133 lilypond/lily/music.cc:1.134 --- lilypond/lily/music.cc:1.133 Tue Apr 12 22:49:28 2005 +++ lilypond/lily/music.cc Fri Jul 8 22:16:28 2005 @@ -297,13 +297,6 @@ return ip ? ip : &dummy_input_global; } -int -Music::duration_log () const -{ - if (is_mus_type ("rhythmic-event")) - return unsmob_duration (get_property ("duration"))->duration_log (); - return 0; -} Music * make_music_by_name (SCM sym) Index: lilypond/lily/stem-engraver.cc diff -u lilypond/lily/stem-engraver.cc:1.103 lilypond/lily/stem-engraver.cc:1.104 --- lilypond/lily/stem-engraver.cc:1.103 Sun May 8 23:30:51 2005 +++ lilypond/lily/stem-engraver.cc Fri Jul 8 22:16:28 2005 @@ -53,11 +53,13 @@ stem_ = make_item ("Stem", gi.music_cause ()->self_scm ()); /* - docme: why do we take duration-log from request, not from note - head? + we take the duration log from the Event, since the duration-log + for a note head is always <= 2. */ - int duration_log = gi.music_cause ()->duration_log (); - stem_->set_property ("duration-log", scm_int2num (duration_log)); + Music *music = gi.music_cause (); + Duration *dur = unsmob_duration (music->get_property ("duration")); + + stem_->set_property ("duration-log", dur ? scm_int2num (dur->duration_log ()) : 0); if (tremolo_ev_) { @@ -82,7 +84,7 @@ context ()->set_property ("tremoloFlags", scm_int2num (requested_type)); int tremolo_flags = intlog2 (requested_type) - 2 - - (duration_log > 2 ? duration_log - 2 : 0); + - (dur->duration_log () > 2 ? dur->duration_log () - 2 : 0); if (tremolo_flags <= 0) { tremolo_ev_->origin ()->warning (_ ("tremolo duration is too long")); @@ -114,15 +116,18 @@ Music *cause = gi.music_cause (); if (!cause) return; - + Duration *d = unsmob_duration (cause->get_property ("duration")); + if (!d) + return ; + if (!stem_) make_stem (gi); - - int duration_log = cause->duration_log (); - if (Stem::duration_log (stem_) != duration_log) + + if (Stem::duration_log (stem_) != d->duration_log ()) { // FIXME: - gi.music_cause ()->origin ()->warning (_f ("adding note head to incompatible stem (type = %d)", 1 << Stem::duration_log (stem_))); + gi.music_cause ()->origin ()->warning (_f ("adding note head to incompatible stem (type = %d)", + 1 << Stem::duration_log (stem_))); gi.music_cause ()->origin ()->warning (_f ("maybe input should specify polyphonic voices")); } Index: lilypond/scm/define-grobs.scm diff -u lilypond/scm/define-grobs.scm:1.209 lilypond/scm/define-grobs.scm:1.210 --- lilypond/scm/define-grobs.scm:1.209 Fri Jul 8 20:00:15 2005 +++ lilypond/scm/define-grobs.scm Fri Jul 8 22:16:28 2005 @@ -1299,7 +1299,6 @@ (TimeSignature . ( (print-function . ,Time_signature::print) -; (print-function . ,Text_interface::print) (break-align-symbol . time-signature) (break-visibility . ,all-visible) (space-alist . ( @@ -1309,7 +1308,6 @@ )) (breakable . #t) (style . C) -; (text . (,time-signature-glue-markup)) (meta . ((interfaces . (time-signature-interface break-aligned-interface font-interface item-interface )))) )) @@ -1333,7 +1331,9 @@ (direction . ,LEFT) (font-size . -4) (print-function . ,Accidental_interface::print) - (meta . ((interfaces . (item-interface side-position-interface font-interface)))) + (meta . ((interfaces . (item-interface + accidental-interface + side-position-interface font-interface)))) )) (TrillPitchGroup @@ -1344,6 +1344,7 @@ (direction . ,RIGHT) (padding . 0.3) (meta . ((interfaces . (side-position-interface + note-head-interface rhythmic-head-interface font-interface accidental-interface item-interface axis-group-interface)))) )) @@ -1354,11 +1355,11 @@ (Y-offset-callbacks . (,Staff_symbol_referencer::callback)) (font-size . -4) (meta . ((interfaces . (item-interface + rhythmic-head-interface font-interface pitched-trill-interface ledgered-interface staff-symbol-referencer-interface)))) )) - (TupletBracket . ( (padding . 1.1) @@ -1369,7 +1370,6 @@ (after-line-breaking-callback . ,Tuplet_bracket::after_line_breaking) (print-function . ,Tuplet_bracket::print) (font-shape . italic) -; (font-series . bold) (font-size . -2) (meta . ((interfaces . (text-interface line-interface Index: lilypond/scm/lily.scm diff -u lilypond/scm/lily.scm:1.368 lilypond/scm/lily.scm:1.369 --- lilypond/scm/lily.scm:1.368 Fri Jul 8 11:37:29 2005 +++ lilypond/scm/lily.scm Fri Jul 8 22:16:28 2005 @@ -215,6 +215,7 @@ "bass-figure.scm" "music-functions.scm" "part-combiner.scm" + "autochange.scm" "define-music-properties.scm" "auto-beam.scm" "chord-name.scm" Index: lilypond/scm/part-combiner.scm diff -u lilypond/scm/part-combiner.scm:1.43 lilypond/scm/part-combiner.scm:1.44 --- lilypond/scm/part-combiner.scm:1.43 Mon Mar 28 19:50:16 2005 +++ lilypond/scm/part-combiner.scm Fri Jul 8 22:16:28 2005 @@ -451,51 +451,6 @@ (display result)) result)) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; autochange - fairly related to part combining. - -(define-public (make-autochange-music music) - (define (generate-split-list change-moment event-list acc) - (if (null? event-list) - acc - (let* ((now-tun (caar event-list)) - (evs (map car (cdar event-list))) - (now (car now-tun)) - (notes (filter (lambda (x) - (equal? (ly:music-property x 'name) 'NoteEvent)) - evs)) - (pitch (if (pair? notes) - (ly:music-property (car notes) 'pitch) - #f))) - ;; tail recursive. - (if (and pitch (not (= (ly:pitch-steps pitch) 0))) - (generate-split-list #f - (cdr event-list) - (cons (cons - - (if change-moment - change-moment - now) - (sign (ly:pitch-steps pitch))) acc)) - (generate-split-list - (if pitch #f now) - (cdr event-list) acc))))) - - (set! noticed '()) - (let* ((m (make-music 'AutoChangeMusic)) - (context (ly:run-translator (make-non-relative-music music) part-combine-listener)) - (evs (last-pair noticed)) - (split (reverse! (generate-split-list - #f - (if (pair? evs) - (reverse! (cdar evs) '()) '()) - '()) - '()))) - (set! (ly:music-property m 'element) music) - (set! (ly:music-property m 'split-list) split) - (set! noticed '()) - m)) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; _______________________________________________ Lilypond-cvs mailing list Lilypond-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-cvs