Index: ly/chord-repetition-init.ly |
diff --git a/ly/chord-repetition-init.ly b/ly/chord-repetition-init.ly |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0365f56f2eea69f6f94c1896a6d89ba382bd6342 |
--- /dev/null |
+++ b/ly/chord-repetition-init.ly |
@@ -0,0 +1,19 @@ |
+\version "2.13.8" |
+ |
+#(define-public (default-repeat-chord previous-chord duration articulations) |
+ "Copy the previous chord, filter events which are not notes, set the |
+chord duration, add articulations." |
+ (let ((new-chord (ly:music-deep-copy previous-chord))) |
+ (set! (ly:music-property new-chord 'elements) |
+ (append! articulations |
+ (filter (lambda (event) |
+ (eqv? (ly:music-property event 'name) 'NoteEvent)) |
+ (ly:music-property new-chord 'elements)))) |
+ (for-each (lambda (event) |
+ (if (ly:duration? (ly:music-property event 'duration)) |
+ (set! (ly:music-property event 'duration) duration))) |
+ (ly:music-property new-chord 'elements)) |
+ new-chord)) |
+ |
+#(ly:parser-set-repetition-symbol parser 'q) |
+#(ly:parser-set-repetition-function parser default-repeat-chord) |