|
From: | Aaron Hill |
Subject: | Re: simple scheme function #{ $note #} |
Date: | Fri, 11 May 2018 16:05:06 -0700 |
User-agent: | Roundcube Webmail/1.3.6 |
On 2018-05-11 14:17, David Kastrup wrote:
Aaron Hill <address@hidden> writes:The error message reads pretty clearly, though. The result of a music function cannot be a single NOTENAME_PITCH.The result of a music function cannot be a pitch, period. It has to be a music expression. A pitch is not a music expression.
I think we are in violent agreement here. It is going to be pointless to nitpick details that are likely irrelevant and off-topic. So in an effort to circle back to summarize and address the original question...
A music function must evaluate to a music expression.The reason why #{ $p #} does not work as the body of a music function is that it will only evaluate to a pitch not a note, and that pitch by itself is not enough to create a music expression.
#{ $p 4 #} works because a pitch followed by a duration clearly defines a note, which is enough to form a music expression.
#{ $p $p #} and #{ $p a' #}, even though missing explicit durations, both work because two or more bare pitches can be interpreted as a sequence of notes where the duration of the notes will be defined by preceding context.
Finally, #{ { $p } #} works because the inner braces specifically instantiate a music expression. Though, again, the note resulting from the bare pitch will have to inherit its duration from prior notes or default values.
Clear as mud? :) -- Aaron Hill
[Prev in Thread] | Current Thread | [Next in Thread] |