David Kastrup <dak <at> gnu.org> writes:

> One problem I currently struggle with is supporting something like
>  \tempo 4. = 200

Your patch to re-allow \tempo in midi blocks will also need to restore 
mention of the extra-space-trick "\tempo 4 . = 90" in the docs, and in 
your convert-ly rule.
http://lists.gnu.org/archive/html/lilypond-devel/2006-08/msg00127.html

That is, your patch as posted now converts my
 \midi{\context{\Score tempoWholesPerMinute = #(ly:make-moment 105 8) }}
to \midi { \tempo 4. = 35}  which gives an error.


> The flexibility of #{ ... #} depends on not having too many modes.  It
> would be nice if #{ 4 #} could be used for a duration, and #{ 4.0 \cm #}
> for a dimension.  

That's a good point.  You can't use #{ 4.0 \cm #} anyway without context 
telling LilyPond that \cm is the pre-defined unit, as opposed to a user 
variable. 

The pre-defined \cm is acted only in limited contexts -- the same 
contexts where we are allowed to type decimal numbers without a leading #. 
We would like those contexts to be even more narrow, immediately after the 
'=' operator.

I see that the parser is tangled, with 'scalar' used for several distinct
things.  If you could untangle the parser so that 4.0\cm matches a distinct 
pattern (not just bare_number in INITIAL lexer mode) and set a lexer mode 
that accepts 4.0\cm when that pattern is valid, then we could type 
\midi{\tempo 4. = 90}


_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to