Hi Kevin,

But right now,
there's nothing other than constructing it by hand each time, for
every chord. I think something would be better than nothing.
The problem has two parts: 1) Generate a sensible voicing for a given chord; 2) create the arpeggio. (Maybe you intended to do 1) manually anyway?)

Here is a possible approach for 2) using LilyPond's (not ideal) automatic voicings for 1):

\version "2.24.0"

arpeggiateChord = #
(define-music-function (chord) (ly:music?)
  (define (make-tied-note p) #{ $p 32~ #})
  (if (music-is-of-type? chord 'event-chord)
  #{
    \set tieWaitForNote = ##t
    \grace {
      $@(map make-tied-note (drop-right! (music-pitches chord) 1))
    }
    \unset tieWaitForNote
    #chord
  #}
  chord))


\score {
  \musicMap #arpeggiateChord {
    \chordmode { c2:7.9- f4:m bes4:m6 f2:m/c c:7 f1 }
  }
  \layout {}
  \midi {}
}

This is very basic, it doesn't support relative mode etc., but maybe it gives you an idea.

Lukas


Reply via email to