Hi All,

From what I can tell, it looks like the LV2 Atom Sequence specification allows you to send events with arbitrary units for the timestamp.

I have a few questions about this:

1. How are we to know whether a particular unit uses the double field in the timestamp union, or the uint64_t field in the timestamp union.
2. The specification says "The unit field is either a URID that described an appropriate time stamp type, or may be 0 where a default stamp type is known."  In what circumstances would the timestamp be known?  When can I expect to see a zero in that field?
3. Are the timestamps absolute times?  Or relative to the previous event?  Or relative to the start of the audio chunk? Does it depend on the units used?
4. Why does the documentation show |FRAMES |SUBFRMS| as the timestamp field? From what I can tell, there is no unit which includes frames and subframes subdivided that way, and the sampler example just uses the full 64 bits as a frames field.  Is this just a relic from the old event port documentation? (the diagram seems familiar).
5. How are hosts/plugins supposed to deal with the multiplicity of units?  For example, suppose I'm a plugin or host that wants to receive MIDI data. How am I supposed to know what timestamp unit to expect?  Is there a facility for converting between different units automatically?  The only extra information required to convert between any two time units would be the bpm and sample rate.  It would be rather annoying to have to implement a bunch of unit conversion code in every host/plugin you write in order to make sure it can handle any unit which is tossed at it.

Thanks,
Jeremy