]> git.donarmstrong.com Git - lilypond.git/commit
Better support for beat slashes (multi-slash & mixed duration).
authorNeil Puttock <n.puttock@gmail.com>
Sun, 13 Feb 2011 23:32:12 +0000 (23:32 +0000)
committerNeil Puttock <n.puttock@gmail.com>
Sun, 13 Feb 2011 23:32:12 +0000 (23:32 +0000)
commitf40beee2bdf96ff578b5a3d004cc276ee333b799
tree86a84f58e1afc294a9848ea2dc9aed8770cc012c
parent90fcc649dc06ad006158945acc15a69e24e942cd
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)
17 files changed:
input/regression/repeat-slash-mixed.ly [new file with mode: 0644]
input/regression/repeat-slash-multi.ly [new file with mode: 0644]
lily/context.cc
lily/double-percent-repeat-engraver.cc [new file with mode: 0644]
lily/include/context.hh
lily/include/percent-repeat-item.hh
lily/multi-measure-rest.cc
lily/percent-repeat-engraver.cc
lily/percent-repeat-item.cc
lily/percent-repeat-iterator.cc
lily/slash-repeat-engraver.cc
ly/engraver-init.ly
scm/define-event-classes.scm
scm/define-grobs.scm
scm/define-music-properties.scm
scm/define-music-types.scm
scm/music-functions.scm