Le 20/11/2022 à 00:02, Luca Fascione a écrit :
Hi all, I have some 2 voice music coming from musicxml like this<a' c>4 <g b>8. <d g\2>16 ~ ~ <d g>2. and I'd like to split it into 2 voices instead: << \new Voice ... { ... a4 g8. d16~ d2. ... } \new Voice ... { ... c4 b8. g16~ g2. ... } >> is there any software / trick that I could use? (I use Frescobaldi, but I couldn't find a transformation for this purpose)
There are a number of snippets floating around for that IIRC, basically variations on the theme
\version "2.22.2" #(use-modules (ice-9 receive)) selectNote = #(define-music-function (index music) (index? ly:music?) (music-map (lambda (m) (if (music-is-of-type? m 'event-chord) (let ((elts (ly:music-property m 'elements))) (receive (rhythmic arts) (partition (music-type-predicate 'rhythmic-event) elts) (if (< (1- index) (length rhythmic)) (let* ((elt (list-ref elts (1- index))) (elt-arts (ly:music-property elt 'articulations))) (set! (ly:music-property elt 'articulations) (append elt-arts (map ly:music-deep-copy arts))) elt) #{ #}))) m)) music)) mus = \relative { <a' c>4 <g b>8. <d g\2>16~ <d g>2. } \new Staff << \new Voice { \voiceOne \selectNote 2 \mus } \new Voice { \voiceTwo \selectNote 1 \mus } >> Best, Jean
OpenPGP_signature
Description: OpenPGP digital signature