Re: [linux-audio-dev] Re: Timed Event Editor Framework

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Re: Timed Event Editor Framework
From: Eli Brandt (eli_AT_v.gp.cs.cmu.edu)
Date: to syys   02 1999 - 11:10:54 EDT


David Slomin wrote:
> I'm afraid I don't understand this part here. I'm not sure what you
> mean by a "group". Remember that the model I'm discussing is not supposed
> to support patterns, loops, etc, but rather just a linear list (or
> parallel linear lists) of events.

If a flat list of tracks is the extent of the structure you present to
the user, it may not much matter which way you implement it.

> In the merged list, there is one definite, user and API controlled order
> of events. No two events are truly simultaneous, even if they have the
> same timestamp. This is advantageous for purposes like dropping markers
> (I'm a HUGE fan of using markers rather than selections for editing
> except when you need discontinous selection). It is perfectly valid to
> drop a marker between two events with the same timestamp. How do you
> handle this when you use separate lists for separate tracks?

Dunno offhand. First off, I think my idea of time says that if two
events aren't at the same time, they shouldn't have the same timestamp.
Maybe make the timestamp a pair (time, tiebreaker) and order
lexicographically.

I don't think I understand the difference between markers and
selections. A marker is an event, while a selection endpoint isn't?
But that's an implementation detail, not user-visible.

Anyway, my seat-of-the-pants design would be a list of timestamps at
each structure node: at track and at "all tracks" in your case. These
times could be selection endpoints, defining selected intervals that
are, say, closed on the left and open on the right (start <= time <
end). Then you effectively union-or-xor-or-whatever-seems-useful the
all-tracks selection with that of the particular track.

Or maybe the timestamp could be markers, where the marked instant is
defined as the leftmost point of the interval corresponding to that
timestamp. I think I'm nervous about really making markers events,
because you get into a situation where you've got events at t and t+1
and want to drop something in between, and there is no such time.
(Unless your timestamps are scary and unbounded in length.) Whereas if
you have a selection-endpoint timestamp at t+1, that selects exactly one
of the two events.

Hmm, equivalently you could make timestamps triples, (time, tiebreaker,
is-a-marker?); then you could put markers in tracks and have them slip
between events, but not between other markers.

-- 
     Eli Brandt  |  eli+@cs.cmu.edu  |  http://www.cs.cmu.edu/~eli/


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:25:53 EST