Mats> write \time C; to get the C and \time 4/4; to get the numbers.
Mats> Also, in some occasions you only want e.g. a single 4 to denote
Mats> 4/4 or even a C2 to denote 3/2 which means that the symbol name
Mats> itself doesn't uniquely decide the time signature. Yet another
Mats> syntax problem to solve.
I agree.
The work I've done so far distinguishes 4/4 from C, but it doesn't go
far enough.
I think that we're going to have to divorce the time from the time
signature.
So
\time 4/4;
will say 4 crotchets to a bar, and in the absence of a \timesig
directive will generate the two stacked fours symbol.
\timesig "C";
generates a broken circle; and in the absence of a
\time directive indicates 4 crotchets to the bar.
\time 12/8; \timesig "C";
would be appropriate for setting the Moonlight Sonata right hand part
(all triplets, not marked as such).
It would also be nice if you don't have to `pack' the inforation in
the parser,ie.
+ | TIME_T unsigned {
+ switch ($2)
+ {
+ case 2: // allabreve
+ case 3: // Tempus Perfecta, prolationem imperfecta
[..]
+ else if (*$2 == "C2")
+ m->beats_i_ = 2;
+ if (m->beats_i_ == 0){
+ THIS->parser_error (_f ("not a timesig: %s", (char *)$2));
+ delete m;
And then unpack it in the translator.
int b_i= m_l->beats_i_;
int o_i = m_l->one_beat_i_;
+ if (o_i == 0)
+ switch(b_i)
+ {
+ case 2: /* allabreve; 2/2; split time */
+ /* FALLTHROUGH */
[..]
+ break;
+ default: /* shouldn't ever happen but just in case */
+ o_i = 4;
+ }
if (! time_.allow_time_signature_change_b())
Perhaps we could maintain the present \time syntax, and
have a property, eg.
\property Staff.timeSignatureStyle = "C"
\property Staff.timeSignatureStyle = "C2"
etc. for determining what to print. Then
\property Staff.timeSignatureStyle = ""
would reset the style to stacked numbers. That is consistent with the
idea that "C" and "C2" are just presentation issues, and \time 4/4 vs
\time 2/2 is a more "musical" idea.
--
Han-Wen Nienhuys, [EMAIL PROTECTED] ** GNU LilyPond - The Music Typesetter
http://www.cs.uu.nl/people/hanwen/lilypond/index.html