> I am not topposting

Let's see whether bypassing Gmane gets us into the discussion any
faster.

Jan-Peter Voigt <jp.vo...@gmx.de> writes:

> Hello Urs,
>
> the articulations are were copied to the EventChord - so I added
> copying the articulations from NoteEvent to EventChord.
> That means, they should not stay in the NoteEvents when getting
> wrapped into the EventChord:

Well, you could use event-chord-wrap! in order to fix this the easy way.

Actually, here is a somewhat amusing version that can do quite a bit
more with quite less code, and that will work both in absolute as well
as relative mode.

relTranspose =
#(define-music-function (parser location from to mus)
  (ly:pitch? ly:pitch? ly:music?)
  #{ \withMusicProperty #'to-relative-callback
     #(lambda (m p)
       (let ((mu (ly:music-property m 'element)))
        (ly:music-transpose mu (ly:pitch-diff from to))
        (ly:make-music-relative! mu p)
        (ly:music-transpose mu (ly:pitch-diff to from)))
       p)
     \transpose $from $to $mus
  #}) 

makeDuped =
#(define-music-function (parser location from arg mus)
  (ly:pitch? ly:music? ly:music?)
  (make-simultaneous-music
   (fold-some-music
    (lambda (m) (music-is-of-type? m 'note-event))
    (lambda (p l)
     (cons #{ \relTranspose $from $(ly:music-property p 'pitch) $mus #} l))
    (list #{ $mus #})
    arg)))

\relative c' {
  \time 3/8
  \key gis \minor
  \makeDuped c' c''  { dis8( e dis')~ dis8.( cis16 b8}
  \makeDuped c' <c g> { ais' gis dis) cis( dis<dis gis'>) }
}

-- 
David Kastrup
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to