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: stk
Subject: Re: Constructive Criticism and a Question
Date: Fri, 5 Jan 2007 16:53:48 -0500 (EST)

> . . . 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

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 { {...} {...} }.

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

I know this was all clear to you before; I am just summarizing what I got
out of your explanation.  I think I have to withdraw my objections; your
reminder that the \alternative construct already uses {...} to indicate
subexpressions is a good point.

-- Tom

********************************************************************

On Fri, 5 Jan 2007, Erik Sandberg wrote:

> On Friday 05 January 2007 09:22, address@hidden wrote:
> > > . . . \tupletSequence 2/3 {{c d e} {f g a} {b c d}}
> > > would just be a shorthand for
> > > \tuplet 2/3 {c d e} \tuplet 2/3 {f g a} \tuplet 2/3 {b c d}
> >
> > That would add a big semantic burden to the meaning of "{" and "}".
> > Currently {{c d e} {f g a} {b c d}} means the same thing as
> > {c d e f g a b c d}.
>
> It's not a problem. 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, the parser would not be modified.
> Examples:
>
> > I would hate to have to write the parser that would
> > figure out (reliably) what
> >    {{c d e} {f g} {a b c}}
> \tuplet {c d e} \tuplet {f g} \tuplet {a b c}
>
> > or
> >    {{c d e} {{f g} a} b c}
> \tuplet {c d e} \tuplet {{f g} a} \tuplet b \tuplet c
>
> > or
> >    {{c8 d e} {f4 g a}}
> \tuplet {c d e} \tuplet {f4 g a}
> > mean (as arguments to \tupletSequence).  And if
> >    \seq = {{a8 b c} {d8 e f}}
> > then, since LP macros are *not* string macros, what will the parser
> > do with the argument
> >    { {g8 f e} \seq {b8 a g} }
> \tuplet {g f e} \tuplet \seq \tuplet {b a g}
>
> --
> Erik
>





reply via email to

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