|
From: | Han-Wen Nienhuys |
Subject: | Re: lilypond ChangeLog Documentation/user/examples.... |
Date: | Mon, 18 Sep 2006 12:44:41 +0200 |
User-agent: | Thunderbird 1.5.0.7 (X11/20060913) |
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 - address@hidden - http://www.xs4all.nl/~hanwen LilyPond Software Design -- Code for Music Notation http://www.lilypond-design.com
[Prev in Thread] | Current Thread | [Next in Thread] |