Issue 3. Cursor and explicit positions

Just some quick thoughts on cursor and explicit positions.

First, just to say that I totally agree with the design goal of reducing
book-keeping and post-processing.

In my opinion probably the idea of <cursor> comes from the need to
represent overlayed voices as I cannot think on other uses. But if each
event has a mandatory voice associated to it, and events in a voice are
declared before starting the events in the next voice, the need for a
cursor practically disappears. It is only needed for gaps in a voice
(non-visible rests).

So my proposal is to maintain <cursor> but:

- Impose the restriction that voices are declared in sequence (not
necessary for all the part but just for each measure).
- Restrict <cursor> to advance time just for a voice: going back not
allowed; advancing time for many voices not allowed.
- Change the tag name for better understanding of its semantics: something
as <voice-gap>, <gap> or <empty-event> would be better.

Or better, suppress <cursor> and replace it by a real empty event (no
notes/rests inside it). i.e. instead of:

    <cursor>
        <duration xx>
        <voice x>
    </cursor>

use

    <event>
        <duration xx>
        <voice x>
    </event>

As no cursor exists, the MNX user is forced to think in semantic instead of
on procedural tricks to achieve the desired goals.

As to explicit positions, they are not needed (cursor solves the problem)
and introduce much book-keeping/processing because absolute measurements
creates a lot of problems. For instance, in notation editors, in operations
such as copy/paste, insertions an deletions.

Cecilio Salmeron

Received on Monday, 27 March 2017 17:59:57 UTC