%%%% You should have received a copy of the GNU General Public License
%%%% along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
-\version "2.13.29"
+\version "2.14.0"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(_i "Insert a breath mark.")
(make-music 'BreathingEvent))
-%% Make slide indication for chords
-chordGlissando =
-#(define-music-function (parser location mus1 mus2) (ly:music? ly:music?)
- "Make a glissando between the notes of triads @code{mus1} and @code{mus2}."
-
- (define (add-glissando musChord)
- (let ((els (ly:music-property musChord 'elements)))
- (ly:music-set-property! musChord 'elements (append els (list (make-music 'GlissandoEvent))))
- musChord))
-
- (define (get-notes musicChord)
- (filter (lambda(x) (eq? (ly:music-property x 'name) 'NoteEvent))
- (ly:music-property musicChord 'elements)))
-
- (define (select-note musChord index)
- (let* ((notes (get-notes musChord))
- (non-notes (filter (lambda (x)
- (not (eq? (ly:music-property x 'name)
- 'NoteEvent)))
- (ly:music-property musChord 'elements)))
- (selected-note (list-ref notes index))
- (new-els (cons selected-note non-notes))
- (new-mus (ly:music-deep-copy musChord)))
- (ly:music-set-property! new-mus 'elements new-els)
- new-mus))
-
- (define (add-glissando-line mus1 mus2 index)
- (context-spec-music
- (context-spec-music
- (make-sequential-music
- (list
- hideNotes
- (make-grob-property-set 'StringNumber 'transparent #t)
- (make-grob-property-set 'NoteColumn 'ignore-collision #t)
- ;; obviously, this isn't equivalent to \once,
- ;; so could be changed if required
- (make-grob-property-set 'Glissando 'thickness 2)
- (make-grob-property-set 'DynamicText 'transparent #t)
- (make-grob-property-set 'DynamicLineSpanner 'transparent #t)
- (make-grob-property-set 'DynamicTextSpanner 'transparent #t)
- (make-grob-property-set 'TextScript 'stencil #f)
- (add-glissando (select-note mus1 index))
- (select-note mus2 index)))
- 'Bottom (symbol->string (gensym)))
- 'Staff))
-
- (let* ((notes1 (get-notes mus1))
- (notes2 (get-notes mus2))
- (note-count (min (length notes1) (length notes2))))
-
- #{
- \once \override Glissando #'minimum-length = #4
- \once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
- <<
- {
- $(add-glissando mus1)
- $mus2
- }
- $(make-simultaneous-music
- (map (lambda (x)
- (add-glissando-line mus1 mus2 x))
- (iota note-count)))
- >>
- \revert NoteColumn #'ignore-collision
- #}))
-
clef =
#(define-music-function (parser location type) (string?)
(_i "Set the current clef to @var{type}.")
(lambda (x)
(shift-one-duration-log x dur dots)) arg))
+slashedGrace =
+#(def-grace-function startSlashedGraceMusic stopSlashedGraceMusic
+ (_i "Create slashed graces (slashes through stems, but no slur) from
+the following music expression"))
+
spacingTweaks =
#(define-music-function (parser location parameters) (list?)
(_i "Set the system stretch, by reading the 'system-stretch property of