From 4e96cd885b2e6998ad1c8e3e09c39301d0699502 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer Date: Sun, 10 Jul 2011 23:12:12 +0200 Subject: [PATCH] Fix 1676: Properly count the notes in a chord tremolo (ignore all non-note events) --- .../chord-tremolo-other-commands.ly | 24 +++++++++++++++++++ scm/music-functions.scm | 4 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 input/regression/chord-tremolo-other-commands.ly diff --git a/input/regression/chord-tremolo-other-commands.ly b/input/regression/chord-tremolo-other-commands.ly new file mode 100644 index 0000000000..f8c347bb38 --- /dev/null +++ b/input/regression/chord-tremolo-other-commands.ly @@ -0,0 +1,24 @@ +\version "2.15.5" + +\header { + texidoc = " +To calculate the total duration of chord tremolos, only real notes shall be +counted, no other commands. +" +} + +right = \relative c'' { + s2 +} + +left = \relative c' { + % This tremolo contains just two notes (but three lilypond events/commands!) + \repeat tremolo 4 { f,16 \change Staff = "right" f'} +} + +\score { + \new PianoStaff << + \new Staff = "right" { \right } + \new Staff = "left" { \clef bass \left } + >> +} diff --git a/scm/music-functions.scm b/scm/music-functions.scm index 7c52d41846..8d828db869 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -278,7 +278,7 @@ through MUSIC." ;; This works for single-note and multi-note tremolos! (let* ((children (if (music-is-of-type? main 'sequential-music) ;; \repeat tremolo n { ... } - (length (ly:music-property main 'elements)) + (length (extract-named-music main 'EventChord)) ;; \repeat tremolo n c4 1)) ;; # of dots is equal to the 1 in bitwise representation (minus 1)! @@ -304,7 +304,7 @@ through MUSIC." (define (calc-repeat-slash-count music) "Given the child-list @var{music} in @code{PercentRepeatMusic}, calculate the number of slashes based on the durations. Returns @code{0} -if durations in in @var{music} vary, allowing slash beats and double-percent +if durations in @var{music} vary, allowing slash beats and double-percent beats to be distinguished." (let* ((durs (map (lambda (elt) (duration-of-note elt)) -- 2.39.2