Urs Liska <li...@openlilylib.org> writes:

> Hi,
>
> in my infrastructure I have a function that binds
>
> (key-signature
>      #{
>        \key
>        #(get-meta-option base-path 'key-tonic)
>        #(get-meta-option base-path 'key-mode)
>      #})
>
> but I would like to also change this to Scheme syntax (if it makes any
> sense after all).

So?  Why don't you do it?

> The first call to get-meta-option retrieves a Pitch object, the second
> a list ((0 . 0) (1 . 0) (2 . 0) (3 . 0) (4 . 0) (5 . 0) (6 . 0)) which
> had been stored as \major.
>
> Obviously \key expects a pitch and a mode, but \displayMusic { \key d
> \major } returns
>
>
> (make-music
>
> 'SequentialMusic
>
> 'elements
>
> (list (make-music
>
> 'KeyChangeEvent
>
> 'pitch-alist
>
> (list (cons 1 0)
>
> (cons 2 0)
>
> (cons 3 1/2)
>
> (cons 4 0)
>
> (cons 5 0)
>
> (cons 6 0)
>
> (cons 0 1/2))
>
> 'tonic
>
> (ly:make-pitch -1 1))))
>
> where the steps of the scale obviously have already been "transposed"
> to reflect d major.

So?

> Is it possible to write the Scheme function issuing the key change
> with the pitch and the generic mode as input?

(key-signature
     (key
       (get-meta-option base-path 'key-tonic)
       (get-meta-option base-path 'key-mode)))

Obviously I am missing something here.

Of course, you can also take a look at the definition of \key in
ly/music-function-init.ly if you want to stick with 2.18 or something.

-- 
David Kastrup

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

Reply via email to