Hi,

Let me first point out that you have to remember object type matters.
ly:music-property expects music object, not pitch object or anything else,
so you have to
give a music object to it, like this:

(display-scheme-music
 (car (ly:music-property #{ \mark "A" c'4 #}
                         'elements)))

which gives
(make-music (quote MarkEvent) (quote label) "A")


Now, is it correct to assume you are trying to achieve something like this?
\insMark "a" musical-sequence

If so, the function would be:

insMark =
#(define-music-function (parser location mark mus)
   (markup? ly:music?)
   (set! (ly:music-property mus 'elements)
         (cons (make-music 'MarkEvent 'label mark)
               (ly:music-property mus 'elements)))
   mus)

This is a crude example and won't work with single note events like c'4

example:
\displayMusic \insMark "A" { c'4 }
=>
(make-music
  'SequentialMusic
  'elements
  (list (make-music (quote MarkEvent) (quote label) "A")
        (make-music
          'NoteEvent
          'duration
          (ly:make-duration 2 0 1)
          'pitch
          (ly:make-pitch 0 0 0))))


BTW, have you read the extending manuagl?
http://lilypond.org/doc/v2.16/Documentation/extending/



On Sun, May 5, 2013 at 9:30 PM, Stjepan Horvat <[email protected]> wrote:

> I'm trying to figure out how and learn to create a function based on a
> \displayMusic function.
> for example:
> \displayMusic { \mark "A" c'4 }
> gives me
> (make-music
>   'SequentialMusic
>   'elements
>   (list (make-music (quote MarkEvent) (quote label) "A")
>         (make-music
>           'NoteEvent
>           'duration
>           (ly:make-duration 2 0 1)
>           'pitch
>           (ly:make-pitch 0 0 0))))
>
> so what i have gotten so far is that there is new (make-music (quote
> MarkEvent) (quote label) "A") or (make-music 'MarkEvent 'label "A") in
> front of c'
> and i don't know how to put this line into it. I understand that i have to
> use cons on 'elements to put the line in front of c.
> Is there a way to figure out what "elements" do i have to use in my
> function to work.
> I'm going through
> http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Music-properties#Music-propertiesto
>  get an idea of how to get into it but #(display-scheme-music (first
> (ly:music-property someNote 'elements))) doesn't work. I get an error
> saying:
> Wrong type argument in position 1 (expecting Music): #<Pitch c' > with
> someNote = c'.
> Help would be appreciated.
>
> --
> *Nesmotren govori kao da mačem probada, a jezik je mudrih iscjeljenje.
> Izreke 12:18*
>
> _______________________________________________
> lilypond-user mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to