|
From: | Gianmaria Lari |
Subject: | Re: simple scheme function #{ $note #} |
Date: | Fri, 11 May 2018 18:14:51 +0200 |
On 2018-05-11 08:46, David Kastrup wrote:
Aaron Hill <address@hidden> writes:
On 2018-05-11 06:53, Gianmaria Lari wrote:
Sorry to bother with a simple question. Why this does not work?
\version "2.19.81"
pit = #(define-music-function
(p) (ly:pitch?)
)
{ \pit c' }
The result is "error: music function cannot return c'". It appears
that a simple pitch by itself is not enough to qualify as music.
#{ $p #}
It's desirable to be able to enter pitches as #{ c' #} and similar. Add
a duration to get a music _expression_.
But can you return an incomplete music _expression_? It seems like that is the underlying issue why the original code does not work.
If you change the function to "#{ { $p } #}", it compiles.
Yes, but the duration is not really well-defined here (happens to end up
as the default duration of the current parser).
True, I was not advocating that this is a useful construct, merely showing that it results in a minimally valid _expression_.
and#{ $p $p #}
compiles, make me think that there were something more....#{ { $p } #}
#{ c $p c #}
[Prev in Thread] | Current Thread | [Next in Thread] |