Hello David,
thanks for the snippet but I ask if it is possible to modify only the body
of my function, inside lambda (x y)( ...  ) so to obtain the same result.
Something like:


%%%%%%%%

fun = #(define-music-function (parser location music1 music2) (ly:music?
ly:music?)
(let
    (
      (musicList1 (ly:music-property music1 'elements))
      (musicList2 (ly:music-property music2 'elements))
    )
    (map
        (lambda (x y)
          ;
          ;  place HERE the code for copying the WHOLE y element to the
whole x element
          ;  (where y and x have the same position in their corresponding
lists)
          ;
        )
     musicList1 musicList2
    )
)
#{ $music1 #})

{
\fun {c' r e'} {f' g' a'}
}

2018-03-05 13:42 GMT+01:00 David Kastrup <d...@gnu.org>:

> paolo prete <paoloprete...@gmail.com> writes:
>
> > in the snippet below I want to replace, while iterating two lists, the
> > elements of music1 with the elements of music2.
> > The code shows how to do that for pitches, but how can I replace the
> whole
> > element? (for example, a rest or a note with its articulation)
> > %%%%%%%%
> >
> > fun = #(define-music-function (parser location music1 music2) (ly:music?
> > ly:music?)
> > (let
> >     (
> >       (musicList1 (ly:music-property music1 'elements))
> >       (musicList2 (ly:music-property music2 'elements))
> >     )
> >     (map
> >         (lambda (x y)
> >           ;iterate notes
> >           (display "note found\n")
> >           ;(set! (ly:music-property x 'pitch) #{c'#})
> >           ;(ly:music-set-property! x 'pitch #{c' #})
> >           (ly:music-set-property! x 'pitch (ly:music-property y 'pitch))
> >         )
> >      musicList1 musicList2
> >     )
> > )
> > #{ $music1 #})
> >
> > {
> > \fun {c' d' e'} {f' g' a'}
> > }
>
> Something like
>
>
>
> I'm fuzzy on what music1 is actually good for at all since only a scant
> sketch of its structure is used at all.  Probably you need to vary/copy
> more from the original.  The music-clone function can take additional
> arguments: maybe that allows you to do something more useful.
>
> --
> David Kastrup
>
>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to