From ab576682034633b31058907b0187231fb9d62102 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 4 Oct 2006 11:33:45 +0000 Subject: [PATCH] * scripts/lilypond-book.py (Lilypond_file_snippet.my_system): write snippet-names binary. * scripts/lilypond-book.py (bindir): use os.pathsep for prepending to $PATH. * scm/define-grobs.scm (all-grob-descriptions): use callback to calc dot count. * scm/output-lib.scm (string-number::calc-text): new function. (note-head::calc-duration-log): new function. * scm/output-lib.scm (fingering::calc-text): new function. --- ChangeLog | 3 +++ lily/stem-engraver.cc | 25 +++++++++++++++---------- scm/define-grobs.scm | 1 + scm/output-lib.scm | 18 +++++++----------- scripts/lilypond-book.py | 2 +- 5 files changed, 27 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index e831e6d217..8c721f5363 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-10-04 Han-Wen Nienhuys + * scripts/lilypond-book.py (Lilypond_file_snippet.my_system): + write snippet-names binary. + * python/lilylib.py (system): use os.system for mingw32 * scripts/lilypond-book.py (bindir): use os.pathsep for prepending diff --git a/lily/stem-engraver.cc b/lily/stem-engraver.cc index 6ca9368d86..d9d278799d 100644 --- a/lily/stem-engraver.cc +++ b/lily/stem-engraver.cc @@ -58,15 +58,6 @@ Stem_engraver::make_stem (Grob_info gi) stem needs a rhythmic structure to fit it into a beam. */ stem_ = make_item ("Stem", gi.grob ()->self_scm ()); - /* - we take the duration log from the Event, since the duration-log - for a note head is always <= 2. - */ - Stream_event *ev = gi.event_cause (); - Duration *dur = unsmob_duration (ev->get_property ("duration")); - - stem_->set_property ("duration-log", dur ? scm_from_int (dur->duration_log ()) : 0); - if (tremolo_ev_) { /* Stem tremolo is never applied to a note by default, @@ -89,6 +80,14 @@ Stem_engraver::make_stem (Grob_info gi) else context ()->set_property ("tremoloFlags", scm_from_int (requested_type)); + + /* + we take the duration log from the Event, since the duration-log + for a note head is always <= 2. + */ + Stream_event *ev = gi.event_cause (); + Duration *dur = unsmob_duration (ev->get_property ("duration")); + int tremolo_flags = intlog2 (requested_type) - 2 - (dur->duration_log () > 2 ? dur->duration_log () - 2 : 0); if (tremolo_flags <= 0) @@ -172,14 +171,20 @@ Stem_engraver::listen_tremolo (Stream_event *ev) ADD_ACKNOWLEDGER (Stem_engraver, rhythmic_head); ADD_TRANSLATOR (Stem_engraver, + /* doc */ "Create stems and single-stem tremolos. It also works together with " "the beam engraver for overriding beaming.", + /* create */ "Stem " "StemTremolo ", - /* accept */ "tremolo-event", + + /* accept */ + "tremolo-event", + /* read */ "tremoloFlags " "stemLeftBeamCount " "stemRightBeamCount ", + /* write */ ""); diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index b818532294..333c6a8e9e 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -1456,6 +1456,7 @@ (Stem . ( (direction . ,ly:stem::calc-direction) + (duration-log . ,note-head::calc-duration-log) (default-direction . ,ly:stem::calc-default-direction) (stem-end-position . ,ly:stem::calc-stem-end-position) (neutral-direction . ,DOWN) diff --git a/scm/output-lib.scm b/scm/output-lib.scm index 7281fee947..90edde716a 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -241,18 +241,15 @@ centered, X==1 is at the right, X == -1 is at the left." ;; Tuplets (define-public (tuplet-number::calc-denominator-text grob) - (let* - ((ev (ly:grob-property grob 'cause))) - - (number->string (ly:event-property ev 'denominator)))) - + (number->string (ly:event-property (event-cause grob) 'denominator))) (define-public (tuplet-number::calc-fraction-text grob) (let* - ((ev (ly:grob-property grob 'cause))) + ((ev (event-cause grob))) + (format "~a:~a" - (ly:event-property ev 'denominator) - (ly:event-property ev 'numerator)))) + (ly:event-property ev 'denominator) + (ly:event-property ev 'numerator)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Color @@ -403,7 +400,7 @@ centered, X==1 is at the right, X == -1 is at the left." (define-public (fingering::calc-text grob) (let* - ((event (ly:grob-property grob 'cause)) + ((event (event-cause grob)) (digit (ly:event-property event 'digit))) (if (> digit 5) @@ -415,8 +412,7 @@ centered, X==1 is at the right, X == -1 is at the left." (define-public (string-number::calc-text grob) (let* - ((event (ly:grob-property grob 'cause)) - (digit (ly:event-property event 'string-number))) + ((digit (ly:event-property (event-cause grob) 'string-number))) (number->string digit 10) )) diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index 1442555d29..3f306560d6 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -1382,7 +1382,7 @@ def process_snippets (cmd, ly_snippets, texstr_snippets, png_snippets): my_system ('latex %s.texstr' % l) if ly_names: - open ('snippet-names', 'w').write ('\n'.join (['snippet-map.ly'] + open ('snippet-names', 'wb').write ('\n'.join (['snippet-map.ly'] + ly_names)) my_system (string.join ([cmd, 'snippet-names'])) -- 2.39.2