[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue a key change in Scheme syntax
From: |
David Kastrup |
Subject: |
Re: Issue a key change in Scheme syntax |
Date: |
Wed, 04 Apr 2018 13:17:06 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
Urs Liska <address@hidden> 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