On Wed, 30 Jul 2003 15:27:18 +0100, [EMAIL PROTECTED] (Phil Taylor) 
wrote:
>I still have some problems understanding the %%staves directive,
>and it still strikes me as being extremely cryptic compared with
>putting the same information into V: fields in the header.
>
>The draft standard says that:
>
>"when enclosed by curly braces `{}', the voices go on a single couple of
>staves (keyboard score). There cannot be more than 4 voices between the
>braces."

The limitation on 4 voices should be removed.

>So what's the difference between
>
>%%staves {1 2 3 4}
>
>and
>
>%%staves (1 2)(3 4)
>
>and if I write:
>
>%%staves {1 2 3}
>
>which hand is voice 2 on?
>

In the second form, the voices 1 and 2 go on the first staff, 3 and 4
go on the 2nd staff.

In the 3rd form, the intermediate voice is 'floating', that is,
the program dynamically chooses for each note the staff where the voice
seems to be the most readable.

For example, if you have a treble clef in the 1st staff, and a bass clef
on the 2nd one, the voice staff depends on the current pitch. Else, if
you have a same clef in both staves, the voice will go on the staff of
the voice which makes the smallest interval.

The actual result of abcm2ps with the 1st form is the same as the 2nd,
but there should be 2 floating voices.

>It seems to me that the use of {} here is both redundant and
>ambiguous.

Perhaps. In fact, this syntax solved the first requirements I had, i.e.
an organ system with 2 staves in a brace for the manual keyboard(s),
and a single staff for the pedal. For instance, a 5 voices fugue is
%%staves {1 2 3 4} 5.

Actually, I see 3 extensions:
1) a brace system with 3 or more staves,
2) explicit floating voices,
3) manual placement of the voices in the system.

1) with the actual syntax, it could be:
        %%staves {(1) (2) (3) (4)}

2) the indication must go in V: :
        %%staves {1}
        ..
        V:1 staff=auto

3) the indication must also go in V: :
        %%staves {1}
        cG[V:1 staff=down]CG, G,C[V:1 staff=up]Gc |

This works with braces, but not with other systems: how do I define
a bracket system with 3 staves and only 2 voices?

I think an other information header should exist, which gives a
completly different syntax:

        s:<staff number> \
                bracket=[on | off] \
                brace=[on | off] \
                bar=[on | off] \
                clef=[<clef name> | auto] \
                ...     % other <keyword>=<value>

Then a voice may use the staff numbers:

ex 1:
        s:1 brace=on
        s:2 brace=off
        V:1 staff=1 placement=auto
        ...

ex 2:
        s:1 bracket=on
        s:2
        s:3 bracket=off
        V:1 staff=1     % placement=manual
        cc[V:1 staff=2]cc [V:1 staff=3]cc[V:1 staff=2]cc |

I have an other requirement: actually, in abcm2ps, %%staves resets the
music generator, so that voices may appear an disappear for some
period of time. With the 's:' header, there should be some marker
to do this job, say 'V:SYNC'. Here is an example:

        s:1 brace=on
        s:2 brace=off
        % 1st part: accompaniment + melody on the bass
        V:Accomp s=1    % jeux doux
        .. some notes ..
        V:Basse s=2     % trompette
        .. some notes ..
        V:SYNC
        % 2nd part: melody on the soprano + accompaniment
        V:Dessus s=1    % cornet
        .. some notes ..
        V:Accomp s=2
        .. some notes ..
        V:SYNC
        % 3rd part: accompaniment + melody on the bass again
        V:Accomp s=1
        .. some notes ..
        V:Basse s=2
        .. some notes ..

Note that such voice changes may appear inside a music line, and that
V:SYNC acts on all voices. So, if the continuation character ('\')
just appends the next line to the current one, an explicit line break
('!') must be used. This implies some information to be given to the
typesetting program for newlines to be ignored.

Finally, I'd be glad if such definitions could be included in the ABC
standard, in place of %%staves (which should be kept for compatibility).

-- 
Ken ar c'henta� |             ** Breizh ha Linux atav! **
                |               http://moinejf.free.fr/
P�p� Jef        |               mailto:[EMAIL PROTECTED]
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html

Reply via email to