Erik Sandberg wrote:
On Sunday 27 August 2006 17:41, Han-Wen Nienhuys wrote:
Graham Percival wrote:
I'm sure that there's some reason why "\tempo x = y" is a horrible
construct and must be replaced, but
\context {
\Score
tempoWholesPerMinute = #(ly:make-moment y x)
}
looks unnecessarily complicated. If that's the way it's going to be,
I'll document it, but... why this? Do we want to allow users to have
different tempo in different Staff contexts?
we can hvae something like
#(set-tempo "4" 70)
or maybe
tempo = #70
\tempo has to go, because it is strange exception to the general syntax.
How about
\score {
{ c d e }
\midi{ pre = \tempo 4. = 70 }
}
?
(I.e., \tempo is a music expression => it's not a grammatical exception)
Semantics: If pre is set, then embed main input in a SequentialMusic when
interpreting music for midi. So instead of interpreting { c d e } above, we
interpret the expression:
{ \tempo 4.=70 { c d e } }
This is a smart idea. Syntactically, I'm not a big fan of this (the
double = is a little strange). However, it would be easy to encapsulate
this with a Scheme expression,
#(set-midi-tempo "4." 70)
however, we would need to have a separate music expression for each
output block.
That would nicely match with a syntax change along the lines of
\withoutput \layout { .. } {music expression}
\withoutput \midi { .. } {music expression}
This implies that music functions are definitely allowed to have side
effects, so it's a syntax change that has some serious repercussions.
ideas, comments?
--
Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen
LilyPond Software Design
-- Code for Music Notation
http://www.lilypond-design.com
_______________________________________________
lilypond-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-devel