lilypond-user
[Top][All Lists]
Advanced

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

Re: Scheme predicative types


From: Martín Rincón Botero
Subject: Re: Scheme predicative types
Date: Wed, 16 Sep 2020 21:30:09 +0200

Thanks Lukas for your answer. I was fearing that it maybe can't be done :-).

Am Mi., 16. Sept. 2020 um 21:09 Uhr schrieb Lukas-Fabian Moser <lfm@gmx.de>:

Hi,

After struggling with understanding Lilypond/Scheme's predicative types, of which I found basically no documentation other than a list of them with a minimal description here http://lilypond.org/doc/v2.20/Documentation/notation/predefined-type-predicates, I would like to ask what type of predicatives the \tempo function accepts. When you write \tempo 4 = 56, what does "4 = 56" for Scheme mean? This is of course something that I'm not using in my script yet, but knowing this might let me extend the script, namely that its usage accepts a proper tempo definition, so that (maybe with a more elegant syntax that doesn't use "" for each argument) I can also use that same number to give to an omitted tempo marking for MIDI playback.

I'm sure more knowledgeable people will be able to provide more insightful answers, but for what it's worth: Looking at lily/parser.yy, I see

tempo_event:
    TEMPO steno_duration '=' tempo_range    {
        $$ = MAKE_SYNTAX (tempo, @$, SCM_EOL, $2, $4);
    }
    | TEMPO text steno_duration '=' tempo_range    {
        $$ = MAKE_SYNTAX (tempo, @$, $2, $3, $5);
    }
    | TEMPO text {
        $$ = MAKE_SYNTAX (tempo, @$, $2);
    } %prec ':'
    ;

which I take to mean: The three forms

  • \tempo 4 = 96
  • \tempo Crazy 4 = 260-270
  • \tempo "Sluggishly slow"

are hardcoded as variants into the parser. My guess is that this might be hard (or impossible) to accomplish in a music function.

Best
Lukas




--
www.martinrinconbotero.com

reply via email to

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