summaryrefslogtreecommitdiff
path: root/ly
diff options
context:
space:
mode:
authorNeil Puttock <n.puttock@gmail.com>2011-02-13 23:32:12 +0000
committerNeil Puttock <n.puttock@gmail.com>2011-02-13 23:32:12 +0000
commitf40beee2bdf96ff578b5a3d004cc276ee333b799 (patch)
tree86a84f58e1afc294a9848ea2dc9aed8770cc012c /ly
parent90fcc649dc06ad006158945acc15a69e24e942cd (diff)
Better support for beat slashes (multi-slash & mixed duration).
* input/regression/repeat-slash-mixed.ly, repeat-slash-multi.ly: new regtests * lily/context.cc (check_repeat_count_visibility): add repeat count visibility proc for use in percent repeat engravers * lily/double-percent-repeat-engraver.cc (new file): create separate engraver for double-measure percent repeats, which listens to DoublePercentEvent * lily/percent-repeat-engraver.cc: listen to PercentEvent and create single-measure repeats only * lily/percent-repeat-item.cc: (brew_slash, brew_slash): add count arg to set number of slashes read slash-count from event-cause * lily/percent-repeat-iterator.cc (get_music_list): send separate synthetic events for percent, double-percent and beat repeats use measure length to choose between full-measure types call scheme proc to get slash count for beat repeats * lily/slash-repeat-engraver.cc: listen to RepeatSlashEvent and use slash-count to switch between RepeatSlash and DoublePercentRepeat * ly/engraver-init.ly: add Double_percent_repeat_engraver to Voice context * scm/define-event-classes.scm (event-classes): add new classes (double-percent-event/repeat-slash-event) * scm/define-grobs.scm (all-grob-descriptions): add DoubleRepeatSlash set slash-negative-kern in RepeatSlash (required for multi-slash beat repeats) * scm/define-music-properties.scm (all-music-properties): doc slash-count * scm/define-music-types.scm (music-descriptions): add synthetic events DoublePercentEvent and RepeatSlashEvent * scm/music-functions.scm (calc-repeat-slash-count): new function used by Percent_repeat_iterator to check durations; returns either number of slashes (if all durations equal) or 0 (if durations vary)
Diffstat (limited to 'ly')
-rw-r--r--ly/engraver-init.ly1
1 files changed, 1 insertions, 0 deletions
diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly
index 92c8398f34..28c7c9706f 100644
--- a/ly/engraver-init.ly
+++ b/ly/engraver-init.ly
@@ -243,6 +243,7 @@ multiple voices on the same staff."
\consists "New_fingering_engraver"
\consists "Chord_tremolo_engraver"
+ \consists "Double_percent_repeat_engraver"
\consists "Percent_repeat_engraver"
\consists "Slash_repeat_engraver"
\consists "Part_combine_engraver"