\version "2.13.12" % also 2.12.3, 2.10.33, 2.8.8. #(ly:set-option 'point-and-click #t) \paper { #(set-paper-size "a6") ragged-right = ##t } propagateOrigins = #(define-music-function (parser location compound-mus) (ly:music?) (define (propagate-origin single-mus) (if (memq 'event-chord (ly:music-property single-mus 'types)) (let* ((loc (ly:music-property single-mus 'origin)) (elm (ly:music-property single-mus 'elements))) (map (lambda (x) (set! (ly:music-property x 'origin) loc)) elm))) single-mus) (music-map propagate-origin compound-mus)) indirect = \chordmode { c c } \context ChordNames { a a } % notemode: link with valid location \context ChordNames \chordmode { b b } % inline chordmode: no link \context ChordNames \indirect % stored chordmode: link with invalid location \context ChordNames \propagateOrigins \chordmode { d d } % workaround