On Sat, 2007-12-01 at 14:56 -0500, Dave Robillard wrote:
Taking a step back, it would be nice to have these
events (being
generic) able to use something other than frame timestamps, for future
dispatching/scheduled type event systems. OSC uses 64 big fixed point
absolute time stamps, giving a resolution of about 200 picoseconds
absolute time (epoch January 1, 1900). This is equivalent to NTP time
stamps apparently - ie huge precedent.
But the whole concept of time in an LV2 plugin is defined in terms of
audio frames. The amount of time to process in each run() call is given
by the host in number of frames - using frame offsets as event
timestamps is clean and consistent. And it's not as if resolution is a
problem, at 48kHz we get 318 ps resolution compared to 232 ps with OSC
timetags. Those extra 86 picoseconds aren't going to cause any real
problems.
And I really like the 8 byte header + 8 byte aligned data. It's nice and
simple.
There is of course no reason that any event type that needed another
time representation couldn't embed that in the event data, but for most
purposes it would probably be easier to just have the host take care of
any translation that's needed to e.g. send OSC events out to an UDP
port.
-ll