lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Constructive Criticism and a Question


From: Erik Sandberg
Subject: Re: Constructive Criticism and a Question
Date: Sat, 6 Jan 2007 20:38:27 +0100
User-agent: KMail/1.9.5

On Friday 05 January 2007 22:53, address@hidden wrote:
> > . . . The { m1 m2 m3 } syntax is used for repeat alternatives
> > already, and the meaning is very clear: Each music expression between the
> > outer { } is a separate argument. Note also that the tupletSequence
> > function  would be implemented entirely in Scheme . . .
> >
> > >    { {g8 f e} \seq {b8 a g} }
> >
> > \tuplet {g f e} \tuplet \seq \tuplet {b a g}
> >
> > >    {{c d e} {{f g} a} b c}
> >
> > \tuplet {c d e} \tuplet {{f g} a} \tuplet b \tuplet c
>
> OK.  Thank you for clarifying that.  I understand, from your original
> remarks, that (here) you have written just "\tuplet" in the interest of
> brevity, and that the full form would be
>
>    \tupletSequence 3:2 {{c d e} {{f g} a} b c}
> meaning
>    \tuplet 3:2 {c d e} \tuplet 3:2 {{f g} a} \tuplet 3:2 b \tuplet 3:2 c

yes, that's right.

> which implies the following things:
>
> a) tupletSequence is a Scheme function which just breaks up its
> subexpressions naively, without any semantic analysis.
>
> b) \tuplet is a real LilyPond function; it is identical to \times,
> except that the notation 3:2 (meaning 2/3) would be allowed.
>
> c) People would have to write \tupletSequence m:n { {...} {...} },
> not \tuplet m:n { {...} {...} }.

yep, this is right (thanks for expressing it clearly).

> d) Any semantic errors in the subexpressions would be reported by the
> \tuplet function, not by the \tupletSequence Scheme function.

technically this is not correct (the \tuplet function doesn't detect semantic 
errors), but in principle you're right (\tuplet and \tupletSequence actually 
only create Music data structures, without performing semantic analysis; 
most 'semantic errors' are detected either when these data structures are 
further processed into typeset scores, or by the parser before the function 
applications)

-- 
Erik




reply via email to

[Prev in Thread] Current Thread [Next in Thread]