lilypond-devel
[Top][All Lists]
Advanced

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

Re: [GLISS] why the hell all this fuss


From: David Kastrup
Subject: Re: [GLISS] why the hell all this fuss
Date: Fri, 07 Sep 2012 09:42:14 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux)

Janek Warchoł <address@hidden> writes:

> On Thu, Sep 6, 2012 at 9:55 AM, David Kastrup <address@hidden> wrote:
>> Janek Warchoł <address@hidden> writes:
>>> Example: hairpins.  There is no convenient way of specifying hairpins
>>> that don't align with the notes (you have to use spacer rests, which
>>> is bad for a number of reasons).  We need to have a convenient way.
>>> Adding this will be a syntax change, so let's do it now instead of
>>> later.
>>
>> I don't see why you should not be able to do this using music functions.
>>
>>> Another example: vertical hairpins attached to arpeggios (Elaine Gould
>>> shows them).  I don't think we have a simple way of extending our
>>> syntax to express them - some basic design principles would have to be
>>> changed a bit, i suppose.  So let's change them now.
>>
>> I don't see why you should not be able to do this using music functions.
>
> Hmm.  You may be absolutely right.  Maybe all we need is to write such
> functions and ship them with LilyPond!

at =
#(define-music-function (parser location t e m)
  (ly:duration? ly:event? ly:music?)
  #{ << #m { \skip $t <>$e } >> #})

\new Voice {
  \at 1*1/3 \p
  \at 1*2/3 \<
  \at 1\!
  c'1
}

> There's one thing worth clarifying: when i say "syntax changes", i
> mean "changes in how user input looks like".  So a renaming of a
> command is a syntax change to me (despite the fact that no grammar
> rules change).
> That's probably confusing - what word should i use when i mean
> "changes in how user input looks like"?

No idea.  What we have under the umbrella of "syntax discussion"
contains three things: lexical units, grammar and vocabulary, mostly
implemented in lexer.ll, parser.yy, and *.ly respectively.  In order to
keep syntax predictable, we want to be able to solve most problems just
by extending the vocabulary.  That means that lexical units and grammar
should be as generic, powerful, and simple as possible.  Specialized
lexical modes take power from the vocabulary.  We want to avoid them as
much as possible given our historic constraints.

> On Thu, Sep 6, 2012 at 10:05 AM, David Kastrup <address@hidden> wrote:
>> Janek Warchoł <address@hidden> writes:
>>> Hmm.  Maybe.
>>> It would be useful for other kinds of spanners, and also articulations
>>> (for example to place a turn during a note).
>>> Would creating macros for all of them be feasible? (maybe i miss
>>> something obvious?)
>>
>> Creating a single macro that can be used on all of them.
>
> My only question is whether current syntax rules would allow such
> macro to be concise and easy to use.

See above.

>>> My rough idea would look something like this
>>> (this is just a musing, not a proposal for discussion yet):
>>>
>>> { b2 \<@0.5 a2 address@hidden } meaning { << b1 { s2 \< s2 \! } >> }
>>
>> Looks like a case of the cure being worse than the problem.  Apart from
>> not being related in any obvious manner.
>
> I'm not sure i understand what you had in mind.

I wanted to express that I'm not sure I understand what you had in
mind.  I can't figure out how your proposed syntax is going to mean what
you state it would.  Durations are different, there is a different
number of notes...

-- 
David Kastrup




reply via email to

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